我使用 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 证书],总结如下:
从 Exchange 命令行管理程序中:
New-ExchangeCertificate -FriendlyName "Exchange 2010 Certificate" -IncludeServerFQDN -DomainName mail.mydomain.net,autodiscover.mydomain.net,webmail.mydomain.net -GenerateRequest -PrivateKeyExportable $true
我转到我的子 CA 网络证书服务
http://subca/certsvc
请求证书
提交高级证书请求
使用 base64 编码的 CMC 或 PKCS #10 文件提交证书请求
将步骤 1 中的请求粘贴到已保存的请求框中
选择证书类型 Web 服务器
点击提交
什么都没有……页面刷新后再次显示相同的页面。页面上或任何日志中都没有错误,请求也未提交。
我也尝试过通过 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,即可颁发证书。