如何通过 ip 地址发出 https 请求?例如,使用 cloudflare:
ext {
GITHUB_TOKEN = System.getenv("GITHUB_TOKEN")
}
maven {
url "https://maven.pkg.github.com/paulschwarz/spring-dotenv"
credentials {
username GITHUB_USER
password GITHUB_TOKEN
}
}
但是当使用原始主机名发出请求时工作正常。
>>> import requests
>>> requests.get('https://104.18.5.125/', verify=False, headers={ 'host': 'example.com' })
...
requests.exceptions.SSLError: HTTPSConnectionPool(host='104.18.5.125', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_read_bytes', 'sslv3 alert handshake failure')])")))
尝试从 Mozilla Firefox 访问时显示:>>> requests.get('https://example.com/', verify=False)
<Response [200]>
。
需要测试远程https服务器进行虚拟主机检查,但不能使用ip地址发起请求。如何禁用来自 python3 代码的警告并发出请求?
答案 0 :(得分:1)
SSL 证书通常包含网站的域名,但不包含 IP,这意味着当您尝试使用 HTTPS 发出请求时,由于没有可用的 IP 证书,导致握手失败。
要解决此问题,您需要停止使用 HTTPS 或获取 IP 地址的 SSL 证书。