第 14 章 安全性
OpenSSL 的运行时版本被屏蔽,SSL_OP_NO_TLSv1_1 不得与 OpenSSL 1.0.0 一起使用
因为某些应用程序对
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)