第 23 章 安全性
OpenSSL
的运行时版本已被屏蔽,在应用程序使用 OpenSSL
1.0.0 运行时不能使用 SSL_OP_NO_TLSv1_1
因为某些应用程序对
OpenSSL
版本执行不正确的版本检查,因此 OpenSSL
的实际运行时版本会被屏蔽,并报告 build-time 版本。因此,无法使用 SSLeay ()
函数检测当前运行的 OpenSSL
版本。
另外,使用 OpenSSL 1.0.0 运行时将与
OpenSSL
1.0.1 上的 SSL_OP_NO_TLSv1_1
选项对应的值传递给 SSL_CTX_set_options ()
函数。
要临时解决这个问题,请使用另一种方法来检测当前运行的
OpenSSL
版本。例如,可以通过使用 SSL_CIPHER _description ()
函数解析列表来获取启用的密码的列表,并使用 SSL_
CIPHER_description () 函数解析列表来搜索 TLS
1.2 密码。这表示在 1.0.0 之后使用 OpenSSL
版本运行的应用程序,因为 TLS
1.2 支持自版本 1.0.1 起存在。(BZ#1497859)