ssl.py中的context.option设置

时间:2016-07-13 03:26:39

标签: python-2.7 ssl openssl protocols

这是来自python2.7.12的ssl.py文件。

context = SSLContext(PROTOCOL_SSLv23)

# SSLv2 considered harmful.
context.options |= OP_NO_SSLv2

# SSLv3 has problematic security and is only required for really old
# clients such as IE6 on Windows XP
context.options |= OP_NO_SSLv3

我不知道怎么读这个,有人能说清楚这意味着什么吗?这是否意味着支持SSLv2和SSLv3以外的任何协议?

此外,如果以这种方式设置上下文导致无法在客户端和服务器之间建立通信,并且仅使用SSLContext(PROTOCOL_SSLv23)设置上下文而不更新context.options导致成功建立通信,那么它是否意味着服务器只支持SSLv2和SSLv3?有没有更简单的方法来找出服务器支持哪些协议?我正在尝试运行openssl ciphers命令,但无法理解它。

感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

  

我不知道如何阅读本文,任何人都可以了解一下   这意味着?这是否意味着支持除SSLv2之外的任何协议   和SSLv3?

表示对SSLv2和SSLv3的块支持

|=是一个按位运算符,您可以将其视为+=

  

有没有更简单的方法来确定服务器支持哪些协议?

有很多命令行实用程序可以帮助解决这个问题。在超级用户身上,他们对https://superuser.com/questions/109213/how-do-i-list-the-ssl-tls-cipher-suites-a-particular-website-offers

中的一些选项进行了很好的总结