我正在尝试将证书颁发机构颁发的 SSL 证书安装到 CentOS 5.x 中的 httpd 服务器中。当我配置它并启动服务器时,我收到以下错误,
[error]Init: Unable to read server certificate from file /etc/pki/tls/certs/ssl_certificate.crt
[error] SSL Library Error: 218570875 error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long
我正在按照以下程序http://wiki.centos.org/HowTos/Https设置 SSL
任何指示都会非常有帮助
答案1
证书可能有问题/损坏。您可以从授权机构重新生成证书吗?
例如,看看:
https://forum.startcom.org/viewtopic.php?f=15&t=2253
或者
http://lists.kolab.org/pipermail/kolab-users/2005-February/001986.html
您可以使用 openssl 对证书进行一些检查:
openssl x509 -in /etc/pki/tls/certs/ssl_certificate.crt -text -noout
这应该会转储出证书信息的纯文本。如果不能,则证书文件有问题。
答案2
我遇到了同样的问题。以下是我的故事和解决方案:
我一直将证书保存为带 BOM 的 UTF-8 格式(字节顺序标记)因此,您只需使用 vim 打开该文件并将其保存为不带 BOM 即可:
# vim cert.pem
:set nobomb
:wq
答案3
我看到这种情况发生的一个常见原因是证书颁发机构生成的文件有 DOS 行结尾。Linux 上的 openssl 不喜欢这种情况,并且会抛出此错误。运行dos2unix在密钥文件上修复这个问题。
答案4
- 在文本编辑器中打开密钥文件
- 从 UTF 转换为 ASCII
- 重启 Apache