![使用任何应用程序升级 NSS 后,无法访问具有自签名证书的网站](https://linux22.com/image/763123/%E4%BD%BF%E7%94%A8%E4%BB%BB%E4%BD%95%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%8D%87%E7%BA%A7%20NSS%20%E5%90%8E%EF%BC%8C%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E5%85%B7%E6%9C%89%E8%87%AA%E7%AD%BE%E5%90%8D%E8%AF%81%E4%B9%A6%E7%9A%84%E7%BD%91%E7%AB%99.png)
我们最近将 NSS 从版本 3.44 ( nss-3.44.0-4.el7.x86_64
) 升级到了版本 3.53 ( nss-3.53.1-3.el7_9.x86_64
)。升级后,使用自签名证书的任何内部网站调用都会失败。我们在 curl 或尝试使用 GIT 等任何应用程序访问时看到以下错误 -
#When Curling
curl https://internalsite.com -k
curl: (35) security library: invalid arguments.
#When using GIt
git clone https://internalsite.com/stash/scm/repo/my_repo.git
Cloning into 'my_repo'...
fatal: unable to access 'https://internalsite.com/stash/scm/repo/my_repo.git/': security library: invalid arguments.
降级回 NSS 3.44 后,问题得到解决。如果我们访问未使用自签名证书的站点,它会按预期运行。
有人知道该如何解决吗?我读到的所有内容都表明这些更改是向后兼容的,所以我不明白为什么我们需要再次将证书导入 NSSDB。即使在导入之后,我也看到同样的错误。
在进行故障排除时,我将证书/密钥转换为 PK12(openssl pkcs12 -export -out certandkey.pfx -inkey /home/me/stuff/cert.key -in cert.pem
),然后使用 导入pk12util -i certandkey.pfx -d sql:/etc/pki/nssdb
。 执行此操作后,我仍然看到相同的问题。
谢谢。
答案1
我向 Redhat 提交了有关此问题的票据。我们的系统使用 FIPS,这会导致连接中断。
他们回复了以下文章,提供了更多信息 -
"Why does curl return error (35) security library: invalid arguments?"
https://access.redhat.com/solutions/5773011
简而言之,您正在连接的网站的密码套件正在尝试使用不符合 NIST 要求的算法。
一旦服务器尝试使用不符合要求的算法连接您,FIPS 将立即关闭该连接。
为了解决这个问题,你应该尝试在你访问的网站上运行 ssllabs -https://www.ssllabs.com/,并查看“密码套件”和“首选密码顺序”,并确保套件符合 NIST 指南(它们需要使用至少 256 长度的素数)。