我有一个很久以前分发的应用程序。该应用程序通过客户端证书身份验证向客户端提供 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 中引入的限制?
- 如果是这样,它是什么时候引入的?
- 有没有办法禁用此检查?(最好不重新编译客户端库)
SECLEVEL 2 将安全级别设置为 112 位
SECLEVEL 1 是以前版本中的默认值,是 80 位