SSL 库错误:218570875 错误:0D07207B:asn1 编码例程:ASN1_get_object:标头太长

SSL 库错误:218570875 错误:0D07207B:asn1 编码例程:ASN1_get_object:标头太长

我正在尝试将证书颁发机构颁发的 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

通过:https://stackoverflow.com/a/300474

答案3

我看到这种情况发生的一个常见原因是证书颁发机构生成的文件有 DOS 行结尾。Linux 上的 openssl 不喜欢这种情况,并且会抛出此错误。运行dos2unix在密钥文件上修复这个问题。

答案4

  • 在文本编辑器中打开密钥文件
  • 从 UTF 转换为 ASCII
  • 重启 Apache

相关内容