![CentOS 上的 SSL 密钥问题](https://linux22.com/image/508732/CentOS%20%E4%B8%8A%E7%9A%84%20SSL%20%E5%AF%86%E9%92%A5%E9%97%AE%E9%A2%98.png)
当尝试在我的 centos 服务器上安装 SSL 密钥时,apache 拒绝重新启动,并且我在日志中看到以下错误。
[Tue Mar 16 22:32:58 2010] [error] Init: Private key not found
[Tue Mar 16 22:32:58 2010] [error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
[Tue Mar 16 22:32:58 2010] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Tue Mar 16 22:32:58 2010] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[Tue Mar 16 22:32:58 2010] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib
这到底是什么意思?我的 SSL 密钥坏了吗?如果是,将密钥上传到服务器的正确方法是什么?我只是在记事本中打开了 crt 文件,复制了数据并通过 ssh 保存了它。
答案1
查看
SSLCertificateFile
和
SSLCertificateKeyFile
/etc/http/conf/httpd.conf 中的都指向正确的文件。
检查SSLCertificateKeyFile
密钥的所有权是否设置为 root:root 且权限是否设置为 400。
听起来您有 .crt 但没有 .key。
查看Apache SSL 常见问题解答更多细节。
答案2
安装 Apache mod ssl
# yum install mod_ssl
进入 centos 6 中的 certs 文件夹
# cd /etc/ssl/certs/
使用以下 OpenSSL 命令重新生成私钥和 CSR
# openssl req -nodes -newkey rsa:2048 -keyout namhuy_net.key -out namhuy_net.csr
从 Verisign、Thawte、Globalsign、Comodo 获取 CA 根证书。从这些供应商处购买证书后,您将收到一封包含证书文件的电子邮件。将这些文件上传到
/etc/ssl/certs/
将合并的文件保存为 namhuy_net.pem。.pem 文件现在即可使用。
我最终将服务器的配置放在了 Apache 的 SSL 配置文件中。
# nano /etc/httpd/conf.d/ssl.conf
编辑行
SSLEngine on
SSLCertificateFile /etc/ssl/certs/namhuy_net.crt
SSLCertificateKeyFile /etc/ssl/certs/namhuy_net.key
SSLCertificateChainFile /etc/ssl/certs/namhuy_net.pem
重新启动 httpd 服务
# service httpd restart
来源:http://namhuy.net/760/how-to-install-an-ssl-certificate-on-centos-for-apache.html
答案3
已在 REDHAT 和 Centos 中解决,检查您的 Selinux 是否禁用它,然后托盘重新启动 httpd,它将启动而不会出现 ssl 证书丢失错误。