我知道这个问题已经被问过了,但尽管研究了好几个小时,我还是找不到可行的解决方案。我正在尝试在我的服务器中安装根证书,以便内部服务可以使用 SSL 相互绑定。
关于新的根 CA,您应该了解的内容:
- Apache httpd 和 PHP
- OpenLDAP 客户端
- Node.js
对于 Apache,我需要一个 PHP 应用程序来了解根证书,因此如果一个站点连接到另一个 SSL 网站(由同一个 CA 签名),它可以正常工作并且不会抱怨自签名证书。
对于 OpenLDAP,我相信它与 PHP 相同,它使用的模块相当老旧,它是 Net_LDAP2,与 PEAR 一起安装。我尝试编辑本地 openldap 配置,但看起来系统没有使用它。
最后是 Node.js,我将其用于 parsoid。node.js 服务器必须信任 CA 才能建立良好的 SSL 连接。
我尝试将证书添加到 /etc/pki/tls/certs/ca-bundle.crt,但收效甚微。
虽然 httpd 看不到根 CA,但我设法让其他服务与其一起工作,如 tomcat 和 389。
感谢您的支持。
答案1
在我的 RHEL 6 盒子上,man 8 update-ca-trust
手册页对如何/应该管理系统范围的 CA 证书和相关信任进行了相当详尽的解释。
正如上面的评论表明的那样,配置通常是特定于应用程序的。
答案2
我编写了一些命令行,以便 SSL 新手更容易理解:
导航到 PKI 文件夹
$ cd /etc/pki/tls/certs/
验证(硬)链接和备份证书
$ cp ca-bundle.crt /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem.bak
$ cp ca-bundle.trust.crt /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt.bak
将CA链上传到CentOS
$ scp <cachain> root@sydapp28:/tmp
通过 SSH(Putty?)或本地连接到 CentOS
$ ssh -C root@sydapp28
如果 PKCS12 CAChain:“将您的内部 CA 链证书转换为 PEM 格式并删除标头”:
$ cd /tmp ; openssl pkcs12 -nodes -in <cachain.pfx.p12> | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > cachain.pem
将你的内部 CA 附加到 CentOS
$ cat /tmp/cachain.pem >> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
$ cat /tmp/cachain.pem >> /etc/pki/ca-trust/extracted/pem/ca-bundle.trust.crt
$ reboot