如何基于IP进行Https健康检查?

时间:2018-06-23 12:37:32

标签: ssl curl https web health-monitoring

我确定这个问题已经在某处得到回答,由于某种原因,我找不到适合我的答案。

我的环境中有多个站点托管在单个IP上。这些都使用Https并在负载均衡器后面。

出现问题是服务器中的一个站点已关闭。 LB将整个服务器标记为已关闭,并且不会告诉我们实际发生了什么...

每个站点都有一个登录页面,因此我想进行检查以连接到请求站点的特定IP,然后查看该登录内容的内容以查看该站点是否实际运行。

这是我的环境

服务器A

1.2.3.4 :
https://example.com
https://blah.com

服务器B

4.3.2.1:
https://example2.com
https://blah2.com

我尝试使用curl解决此问题,但是,代码似乎可以解决我想要的主机名

代码:

#!/bin/bash


Usage="Please execute this script using the following: ./thisscript.sh example.com 1.2.3.4";
Hostname=$1
Address=$2

if [ $# -ne 2 ]; then
    echo ${Usage}
    exit 1
fi


curl -v -k  "${Hostname}":443:"${Address}" https://"${Hostname}" 

我当前代码的输出:

myscript.sh purple.com 172.217.16.46 | head

  
      
  • 将URL重建为:purple.com:443:172.217.16.46/接收的总百分比%Xferd平均速度时间时间时间当前                                Dload上传总剩余左速度0 0 0 0 0 0 0 0 0-:-:--:-:-   -:-:-0 *无法解析主机:purple.com:443
  •   
  • 关闭连接0 curl:(6)无法解析主机:purple.com:443
  •   
  • 将URL重建为:https://purple.com/
  •   
  • 尝试104.20.56.235 ...
  •   
  • 已连接至purple.com(104.20.56.235)端口443(#1)
  •   
  • 在/etc/ssl/certs/ca-certificates.crt中找到148个证书
  •   
  • 在/ etc / ssl / certs中找到597个证书
  •   
  • ALPN,提供http / 1.1
  •   
  • 使用TLS1.2 / ECDHE_ECDSA_AES_128_GCM_SHA256的SSL连接
  •   
  • 服务器证书验证已跳过
  •   
  • 服务器证书状态验证已跳过
  •   
  • 常用名:purple.com(匹配)
  •   
  • 服务器证书的到期日期确定
  •   
  • 服务器证书激活日期确定
  •   
  • 证书公钥:EC
  •   
  • 证书版本:#3
  •   
  • 主题:C = US,ST = CA,L = San Francisco,O = CloudFlare \,Inc.,CN = purple.com
  •   
  • 开始日期:2018年4月13日星期五00:00:00 GMT
  •   
  • 到期日期:2019年4月13日星期六格林尼治标准时间
  •   
  • 发布者:C = US,ST = CA,L = San Francisco,O = CloudFlare \,Inc.,CN = CloudFlare Inc ECC CA-2
  •   
  • 压缩:NULL
  •   
  • ALPN,服务器接受使用http / 1.1      
        

    GET / HTTP / 1.1     主持人:purple.com     用户代理:curl / 7.47.0     接受: /

      
  •   

这应该失败,因为我正在查询google的IP 172.217.16.36,并且代码仍在抓取Purple.com的内容。

简而言之: 我需要一种通过 IP 通过https连接到服务器并获取特定站点内容的方法。

0 个答案:

没有答案