无法向 2k8R2 CA 提交证书请求

无法向 2k8R2 CA 提交证书请求

我使用 Windows Server 2008 R2 创建了一个两层 CA。.inf用于创建此独立根 CA 和企业子 CA 的文件位于本文末尾。

根证书安装成功,并向 SubCA 颁发了证书。SubCA 又自动向域控制器颁发了证书。

我的 PKI 健康状况良好,所有链有效且 CRL 已发布。

但是,当我尝试为我的 Exchange 服务器注册 SAN 证书时,请求未被接受。事实上,根本没有错误消息。我正在关注 (http://exchangeserverpro.com/how-to-issue-a-san-certificate-to-exchange-server-2010-from-a-private-certificate-authority)[“如何从私人证书颁发机构向 Exchange 2010 颁发 SAN 证书],总结如下:

  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. 使用 base64 编码的 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

答案1

在找到更多信息后,我能够解决这个问题无法将 Exchange 管理控制台 (EMC) 或 Exchange 命令行管理程序 (EMS) 生成的证书请求提交给 Microsoft 证书服务

总之,这是因为证书请求存储为 Unicode 编码,而 Microsoft 证书服务不支持 Unicode 编码文件。

解决方法是在记事本中打开请求文件,然后另存为新文件(这次使用 ANSI 编码)。然后将此 ANSI 编码文件重新提交给 CA,即可颁发证书。

相关内容