我正在尝试一个网站列表,并试图获得每个网站支持的协议类型。但是,我只能从TLSv1开始检索
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
osobj = SSL.Context(SSL.SSLv3_METHOD)
sock.connect((host, int(port)))
oscon = SSL.Connection(osobj, sock)
oscon.set_tlsext_host_name(host.encode())
oscon.set_connect_state()
oscon.do_handshake()
protocol = oscon.get_protocol_version_name() # If website supports SSLv2, it should return 'SSLv2'
我知道openssl不推荐使用SSLv2和SSLv3
我怎样才能得到一个网站支持的所有协议列表
要检查连接中协商的TLS协议版本,可以调用
oscon.get_protocol_version_name()
。要防止使用SSLv2/v3,可以在设置连接选项set_options()
时使用标志OpenSSL.SSL.OP_NO_SSLv2
和OpenSSL.SSL.OP_NO_SSLv2
。如果需要将连接限制为仅使用SSLv2/v3,请设置选项OpenSSL.SSL.OP_NO_TLSv1, OpenSSL.SSL.OP_NO_TLSv1_1, OpenSSL.SSL.OP_NO_TLSv1_2, OpenSSL.SSL.OP_NO_TLSv1_3
。通过使用这些选项付费,您可以完全控制连接的TLS版本下面是我将如何在您的代码片段中使用它:
相关问题 更多 >
编程相关推荐