Windows-Server-2008-R2

無法向 2k8R2 CA 送出證書請求

  • August 1, 2012

我使用 Windows Server 2008 R2 創建了一個兩層 CA。用於創建此獨立根和企業子 CA的.inf文件位於本文末尾。

根安裝正常並向 SubCA 頒發證書。SubCA 又自動向域控制器頒發證書。

我的 PKI 健康狀況是綠色的,所有鏈都有效並且 CRL 已發布。

但是,當我嘗試為我的 Exchange 伺服器註冊 SAN 證書時,該請求不被接受。事實上,根本沒有錯誤資訊。我正在關注([http://exchangeserverpro.com/how-to-issue-a-san-certificate-to-exchange-server-2010-from-a-private-certificate-authority)[) “如何頒發 SAN 證書從私有證書頒發機構到 Exchange 2010],總之:

  1. 從 Exchange 命令行管理程序:New-ExchangeCertificate -FriendlyName "Exchange 2010 Certificate" -IncludeServerFQDN -DomainName mail.mydomain.net,autodiscover.mydomain.net,webmail.mydomain.net -GenerateRequest -PrivateKeyExportable $true
  2. 我去我的子 CA 網路證書服務http://subca/certsvc
  3. 申請證書
  4. 送出高級證書申請
  5. 使用 base-64 編碼的 CMC 或 PKCS #10 文件送出證書請求
  6. 將步驟 1 中的請求粘貼到已保存的請求框中
  7. 選擇證書類型 Web 伺服器
  8. 點擊送出
  9. 沒什麼…頁面重新刷新以再次顯示同一頁面。頁面或任何日誌都沒有錯誤,請求沒有送出。

我也嘗試通過 certsrv MMC 將 cer 文件送出給從屬 CA,我右鍵點擊 CA -> 所有任務 -> 送出新請求 -> 選擇 cer 文件,然後點擊確定。什麼都沒有發生,沒有錯誤,沒有掛起的請求,日誌中什麼都沒有,什麼都沒有。

; CAPolicy.inf example file for the Root CA
[Version]
Signature= "$Windows NT$"

RenewalKeyLength=2048
RenewalValidityPeriod=Years
RenewalValidityPeriodUnits=20

CRLPeriod = Years
CRLPeriodUnits = 1
CRLDeltaPeriod = Days
CRLDeltaPeriodUnits = 0

AlternateSignatureAlgorithm=1

[CRLDistributionPoint]
Empty=true

[AuthorityInformationAccess]
Empty=true


; CApolicy.inf file for the Issuing CA
[Version]
Signature= "$Windows NT$"
[Certsrv_Server]
RenewalKeyLength=2048
RenewalValidityPeriod=Years
RenewalValidityPeriodUnits=10
CRLPeriod=Weeks
CRLPeriodUnits=1
CRLDeltaPeriod=Days
CRLDeltaPeriodUnits=1
CRLOverlapPeriod=Days
CRLOverlapUnits=2
ValidityPeriod=Years
ValidityPeriodUnits=2
AlternateSignatureAlgorithm=1

在找到更多資訊後,我能夠解決此問題您無法將 Exchange 管理控制台 (EMC) 或 Exchange 命令行管理程序 (EMS) 生成的證書請求送出給 Microsoft 證書服務

總之,這是因為證書請求被儲存為 Unicode 編碼並且 Microsoft 證書服務不支持 unicode 編碼的文件。

修復方法是在記事本中打開請求文件,這次使用 ANSI 編碼另存為新文件。然後將這個 ANSI 編碼文件重新送出給 CA,並頒發證書。

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