
我知道已經有人問過這個問題,但儘管進行了很多小時的研究,我還是找不到可行的解決方案。我正在嘗試在我的伺服器中安裝我的根證書,以便內部服務可以使用 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
IF 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