Openssl

從 OpenSSL 和 IIS 生成 CSR 文件有什麼區別?

  • May 20, 2020

我已經了解瞭如何使用 OpenSSL 生成 .csr 文件,並且已經成功地創建、轉換並安裝了簽名證書(.pfx 文件)到我們使用 IIS 10 的一些 Web 伺服器上。

現在,其他人向我展示瞭如何直接從我們的其他 Web 伺服器之一生成 .csr 文件 - 使用 IIS 10 中可用的“創建證書請求”功能。但是 - 使用這種方法,我沒有創建一個 .pfx 文件,我能夠將下載的簽名證書安裝到 IIS 上,而無需進行任何轉換。所以這樣做要快得多 - 但是,我不明白為什麼在這種情況下使用這種方法而不是 OpenSSL。最終結果不同嗎?有人可以啟發我嗎?

如果您使用 IIS 控制台的**Create Domain Certificate…**選項,您只能使用 Microsoft ADCS 的內置 Web 伺服器模板請求證書。此模板的功能非常有限,不包括Subject Alternate Name所有現代瀏覽器要求的S/MIME Capabilities擴展,還包括 Web 伺服器證書不需要的擴展。由於這是版本 1 模板,您無法更改其中任何一個。

如果您選擇使用 IIS 控制台的**Create Certificate Request…**選項,您將創建一個可以保存到磁碟的請求。您現在可以將請求送出給任何 CA。如果您選擇 Windows ADCS,您可以使用certreq.exe帶有選項的實用程序-attrib "CertificateTemplate:<template short name>來指定不同的模板。您甚至可以使用一些極客來Subject Alternate Name為請求添加擴展(或任何其他擴展),但這需要一些努力和對 X.509 證書的內部工作原理的理解!

如果您使用 OpenSSL 創建證書請求,您可以請求 OpenSSL 能夠創建的任何欄位或副檔名 - 這幾乎涵蓋了所有內容。您可以將此請求送出給 ADCS CA,certreq.exe也可以將請求送出給非 Windows CA。收到證書後,您需要將其與其私鑰配對以創建導入伺服器的 PKCS#12(或 PFX)文件。這相當複雜,但如果需要,您的證書請求可以非常靈活。

但是,一個更簡單的選擇(似乎您沒有顯示)是使用伺服器(不是 IIS)證書管理控制台(certlm.msc來自“執行”對話框)請求證書,您可以在其中使用任何啟用的模板(不僅僅是網路伺服器)。如果 ADCS 管理員正確配置了此模板,您將獲得具有適當Subject Alternate Name副檔名的證書,沒有S/MIME Capability副檔名和 Web 伺服器的正確密鑰用法,然後您可以使用 IIS 控制台簡單地綁定到網站。這既靈活又方便。

引用自:https://serverfault.com/questions/1017897