2016-04-14 229 views
0

一位顧客給了我們3級證書,這是在順序安裝在Windows服務器上:SSL鏈簽名證書

  1. Verisign發佈,賽門鐵克(證書只,安裝爲 中間體)
  2. 由Symantec分,公司CompanyX(證書只, 安裝爲中間)
  3. 由公司CompanyX分,公司CompanyX (證書和密鑰,安裝爲個人)

在MMC中,當我檢查#2,我可以看到鏈爲:

Verisign所(根) - >威瑞(中間體) - >賽門鐵克(中間體)

檢查當# 3(自簽名證書),沒有鏈。只有CompanyX。

看起來像windows無法建立最後一箇中間和自簽名證書之間的鏈,因此當客戶端連接到Web服務器時,他們看到自簽名或不可信證書警告,可能是因爲服務器未發佈中間證書。

我已經驗證了通用名稱完全匹配,並重復安裝過程幾次。我安裝證書有什麼問題嗎?我錯過了什麼嗎?

回答

0

只是爲了記錄和未來可能的搜索結果,這裏是我如何解決它:

由於兩個#3,#2具有相同的主題(和公鑰),我不得不爲#3的私鑰,但不#2,我想嘗試在#2證書#3私鑰,那麼:

  1. 從提取#3的鍵與openssl pkcs12 -in Cert3.pfx -nocerts -nodes。 Cert3.pfx是帶密鑰的#3證書,並且只使用私鑰創建新的Cert3.key文件。

  2. 合併#2證書和提取的密鑰openssl pkcs12 -export -out 'NewCert2.pfx' -inkey Cert3.key -in Cert2.cer。其中Cert2.cer是#2沒有密鑰,並創建NewCert2.pfx與#2證書和#3密鑰合併。

  3. 從個人商店中刪除#3並從中間商店刪除#2。

  4. 將新的合併#2導入個人商店。

  5. 更新了新證書的IIS綁定。

結果是使用#2作爲SSL證書,已經使用SSL-Checker進行了測試,並且一切正常。

0

證書#3不是VeriSign頒發的證書的一部分。它可以是從節點(在證書MMC中)複製的不完整請求的虛擬證書。如果是這種情況(比較公鑰或Subject Key Identifier擴展值),#2和#3證書。如果它們匹配,則將證書#3移動到Certificate Enrollment Requests節點。

你的客戶需要做的是去哪裏產生原始請求的機器(我會懷疑IIS服務器上),並試圖通過運行以下命令正確安裝頒發的證書:

certreq -accept path\certNo2.cer 

如果命令成功,證書將自動安裝在個人存儲中。如果命令失敗,客戶必須找到生成請求的機器並運行上面的命令。

+0

謝謝@CryptoGuy。我可以確認#2和#3的公鑰值是相同的,但mmc中沒有'Certificate Enrollment Requests'節點。我相信最初的請求是在Java密鑰庫中完成的,我不得不使用keytool將其轉換爲pfx。 – JavoSN