我有一个很久以前发布的应用程序。该应用程序通过客户端证书身份验证向客户端提供 https 接口。在应用程序发布时,提供 1024 位密钥长度的证书可能没问题。尽管我们一直建议客户使用自己的 PKI 更新默认证书,但大多数客户只是使用默认证书,所以我有数千个像这样运行的实例。现在我需要编写一个客户端(用 python)来查询该应用程序。此客户端将在更现代的 Linux 发行版上运行,其中的库和客户端应用程序是针对 openssl 1.1.1a 编译的。因此,当我尝试使用弱默认客户端证书访问 https 接口时,我总是收到以下错误:OpenSSL 错误:
140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small
在旧发行版(使用旧版 openssl)上运行相同的代码或使用针对 gnutls 编译的应用程序可以正常工作。
几个问题:
- 我是否正确地认为这是 openssl 出于安全原因而引入的限制?
- 如果是,那么它是什么时候引入的?
- 有没有办法禁用这个检查?(最好不要重新编译客户端库)
答案1
- 是的
- 1.1.1~~pre9-1https://www.mail-archive.com/[电子邮件保护]/msg1625241.html
- 在 Debian /etc/ssl/openssl.cnf 上https://wiki.debian.org/ContinuousIntegration/TriagingTips/openssl-1.1.1
SECLEVEL 2 将安全级别设置为 112 位
SECLEVEL 1 是以前版本的默认设置,位于 80 位