在python中有一个很好的方法来检查一个网站/网址是否支持http2以及它支持哪些SSL版本。
我正在寻找的是通过使用命令
实现的openssl s_client connect domain:443 nextprotoneg ''
此openssl命令的输出包含以下行:Protocols advertised by server: h2, spdy/3.1, http/1.1
通过它我可以找出http2支持。
curl -v -o /dev/null --silent https://www.example.com
这一行 - >上述命令输出中的TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
可以告诉我使用的SSL版本。
我不想运行这些命令并解析输出,因为我觉得应该有更好的方法来实现它。
答案 0 :(得分:0)
您可以使用Hyper lib。
from hyper import HTTPConnection
conn = HTTPConnection('google.com:443')
# If request made over http/1.1 then result will be None
if conn.request('HEAD', '/') is not None:
# Return a string identifying the protocol version used by the current SSL channel
print(conn._sock._sck.version()) # little bit dirty, but work