
我為內部網路 example.com 建立了一個自訂根憑證授權單位。理想情況下,我希望能夠將與此憑證授權單位關聯的 CA 憑證部署到我的 Linux 用戶端(執行 Ubuntu 9.04 和 CentOS 5.3),以便所有應用程式自動識別憑證授權單位(即我不希望手動設定Firefox 、Thunderbird 等以信任此憑證授權單位)。
我在Ubuntu 上嘗試過此操作,方法是將PEM 編碼的CA 憑證複製到/etc/ssl/certs/ 和/usr/share/ca-certificates/,以及修改/etc/ca-certificates.conf 並重新執行update- ca 證書,但是應用程式似乎無法識別我已向系統添加了另一個受信任的 CA。
因此,是否可以將 CA 憑證新增至系統一次,或者是否有必要手動將 CA 新增至所有可能的應用程序,這些應用程式將嘗試與我的網路中由該 CA 簽署的主機建立 SSL 連接?如果可以向系統新增一次CA證書,那麼它需要去哪裡?
謝謝。
答案1
簡而言之:您需要自行更新每個應用程式
甚至 Firefox 和 Thunderbird 也不共用憑證。
不幸的是,Linux 沒有儲存/管理 SSL 憑證的中心位置。 Windows確實有這樣的地方,但最終你會遇到同樣的問題(Firefox/Thunderbird不會使用Windows提供的API來決定SSL憑證的有效性)
我會在每個主機上使用類似 puppet/cfengine 的東西,並使用這些工具提供的機制將所需的根憑證放置在所有用戶端上。
答案2
遺憾的是,像 Firefox 和 Thunderbird 這樣的程式使用它們自己的資料庫。
但是,您可以編寫一個腳本來查找所有設定文件,然後新增證書。這是新增證書的工具: http://www.mozilla.org/projects/security/pki/nss/tools/certutil.html
您也可以設定預設的 cert8.db 文件,因此新的設定檔也將獲得它。
對於其他應用程序,問題在於它們是否支援中央儲存。
答案3
您指定的方法將更新中央 /etc/ssl/certs/ca-certificates.crt。但是,您會發現大多數應用程式未配置為使用此檔案。大多數應用程式都可以配置為指向中心文件。沒有自動的方法可以讓所有東西都使用這個檔案而不需要重新配置它們。
預設使用此文件可能值得在 Ubuntu/Debian 中提交錯誤。
答案4
您可以在 ubuntu 和其他發行版中添加自定義 PKI CA:這裡有鏈接,您可能會發現有價值的: Linux 憑證管理