在我的其中一台服务器上,我发现 SSL 密码存在以下问题:一些证书无需输入密码即可传递,而另一些证书则一直要求输入密码。
我已经在全球范围内进行了设置:
SSLPassPhraseDialog exec:/path/to/passphrase
但是当我重新启动时apache
,它会要求我输入使用相同通配符证书的几个域的密码。
知道这是什么原因造成的吗?
为了检查密码,我运行了
(openssl x509 -noout -modulus -in server.pem | openssl md5 ; openssl rsa -noout -modulus -in server.key | openssl md5) | uniq
我得到了一个哈希值,这意味着它们匹配,密码相同
[Wed Mar 05 17:13:23 2014] [error] Init: Pass phrase incorrect
[Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 218640442 error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error
[Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 67710980 error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib
[Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
我如何检查这是否是由 selinux 策略引起的,当我删除密码时一切都开始工作?顺便说一句,目前 SELinux 在我的服务器上被禁用
有什么帮助吗?
答案1
我修复了这个问题,这是因为一些证书使用了不同的密码
echo "Password \$21"
与
echo 'Password \$21'
因此,第一个例子中的反斜杠是 $ 的转义符,而在第二个例子中,我们在密码中使用了反斜杠和 $。
编写简单的脚本可以解决这个问题