我们最近将 NSS 从版本 3.44 ( nss-3.44.0-4.el7.x86_64
) 升级到版本 3.53 ( nss-3.53.1-3.el7_9.x86_64
)。此次升级后,对我们内部网站的任何使用自签名证书的调用都会失败。卷曲或尝试使用 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
. 这样做之后,我仍然看到同样的问题。
谢谢。
我向 Redhat 开了一张关于这个问题的票。我们在我们的系统上使用 FIPS,这会杀死连接。
他们回复了以下文章,提供了更多信息-
简短的版本是您要连接的网站的密码套件正在尝试使用不符合 NIST 要求的算法。
一旦服务器尝试使用不符合要求的算法连接到您,FIPS 将立即关闭连接。
为了解决这个问题,您应该尝试在您正在访问的网站 - https://www.ssllabs.com/上运行 ssllabs ,并查看“密码套件”和“首选密码顺序”,并确保套件符合 NIST 指南(它们需要使用至少 256 长度的素数)。