
我想為我的網域設定企業憑證授權單位。所以我可以為各種目的頒發證書。我想遵循以離線 CA 作為根的最佳實踐,並將我的企業 CA 設定為從屬。但為這項任務授權 Windows 的完整副本似乎很愚蠢。
我希望能夠做的是將一些即時發行版安裝到 USB 隨身碟上,然後安裝 openssl,並在隨身碟上設定我的 CA。當我準備好建立根密鑰/憑證時,我將斷開電腦與網路的連接,然後再也不會在網路連接的電腦上使用該 USB 磁碟。
我是否能夠為 Windows 企業 CA 正確簽署並建立可用的從屬 CA 憑證。我需要與 OpenSSL 一起使用哪些選項來建立 CA 並正確簽署從屬 CA 憑證。
我嘗試在網上搜索,結果是這這是我能找到的關於這個主題的唯一資訊。但那是 2008 年之前的事了,我不完全確定這個人是否非常成功。
答案1
是的,它工作得很好; Windows 憑證授權單位對於作為非 Windows 根的下屬運作沒有任何疑慮。
在企業模式下使用 OpenSSL 根和 Windows 2008 R2 從屬系統進行測試。
有幾件事可以很好地滿足 MS CA 在 OpenSSL 配置中的期望:
有效的 AIA 和 CDP 位置應適用於根證書,位於自簽名根部分
x509_extensions
的屬性配置的部分。[req]
沿著這些思路:authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
預設情況下,給定的 OpenSSL 設定可能不允許從屬 CA。更改簽名請求的設定(當然,對於不應該是 CA 的請求,請確保此設定不適用)。這將位於由
x509_extensions
該部分的屬性配置的部分中[ca]
:basicConstraints=CA:TRUE certificatePolicies=2.5.29.32.0
所以,我們會做一個CA來測試。
讓你的根:
openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca
修改您的配置並在[ca]
OpenSSL 設定部分建立必要的檔案和目錄。
一切準備就緒,讓微軟方面的工作順利進行;建立具有手動簽署的 Windows 從屬 CA。
將憑證請求上傳到 OpenSSL 伺服器。在此過程中,下載根憑證。將其導入電腦的受信任根儲存中,而不是您的使用者!
頒發從屬證書:
openssl ca -in test-subca.req
(you might need to specify a permissive policy manually with -policy, check your config)
如果這不起作用,您的 CA 可能有設定問題 - 新的憑證目錄、索引檔案、序列檔案等。
如果它去了,那就這樣了。如果還沒有,請建立一個 CRL 並將其放入您上面配置的 CDP 中;我剛剛安裝了 Apache 並將其卡在 webroot 中:
openssl ca -gencrl -out /var/www/root.crl
並將您的證書放入 AIA 位置(如果尚未放置):
cp /etc/ssl/certs/root.pem /var/www/root.pem
下載新頒發的從屬憑證並使用憑證授權單位 MMC 管理單元將其安裝到 CA。它會抱怨任何信任或驗證方面的問題,但它在道德上並不反對接受它。
最終結果;一個正常工作的 Windows CA,企業 PKI 管理單元不會發出任何抱怨,並且OpenSSL Generated Certificate
在屬性中具有洩漏資訊的功能。
答案2
我明白你的意思,但我不認為 OpenSSL 是完成這項工作的工具。您可能想看看開源證書頒發機構項目例如EJBCA它們比 OpenSSL 更關注此功能,並且有您可以使用的特定文件。
我不明白為什麼這個概念行不通,因為您所做的只是簽署從屬 CA 的憑證。如果您付費讓公共 CA 為您執行此操作,您不一定知道或關心他們使用的伺服器類型。
您需要關心的是:
- 您可以從您的下屬產生的 CSR 簽署證書
- 結果可以安裝在下屬本身上
- 您擁有一個根簽署證書,可以將其安裝為受信任的任何目標用戶端
- 您可以產生一個在某處提供的撤銷列表
我不能說我已經做到了這一點,但我確信如果您按照從 Windows 盒子生成 CSR 的文檔,然後按照 CA 文檔從 CSR 生成 .p7k 證書,那麼您應該沒問題。
順便說一句- 我建議您將CA 創建為流行的虛擬機管理程序(例如Hyper-V 或VMware)的虛擬機,而不是啟動磁盤,確保將其非常安全地存儲在您的繼任者可以找到它的地方,並旋轉它定期離線以確保其運行,或將其轉移到新媒體/技術。根 CA 的壽命可能為 10 或 20 年...