我们有一个 openssl 离线根 CA,其中有一个与 Windows 2008 R2 AD 集成的 SubCA。
Openssl Root CA 已CN=ROOTCANAME,CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=DOMAIN
使用以下方式发布到 ldapcertutil -dspublish -f root.cer RootCA
一切正常,除了一件事。到目前为止,出现了两个客户端(均为 XP),它们没有将根 CA 证书导入受信任的企业根证书颁发机构存储。
在我的工作站上,我得到以下输出:
C:\>certutil -store -enterprise root
402.203.0: 0x80070057 (WIN32: 87): ..CertCli Version
================ Certificate 0 ================
Serial Number: f818516373f917e8
Issuer: E=hostmaster@DOMAIN, CN=ROOTCA, O=Organisation, L=Location, S=State, C=DE
Subject: E=hostmaster@DOMAIN, CN=ROOTCA, O=Organisation, L=Location, S=State, C=DE
Signature matches Public Key
Root Certificate: Subject matches Issuer
Cert Hash(sha1): a6 ed 80 59 04 80 c7 1f 4e cb aa e1 8d e7 77 4a 2a 98 43 97
No key provider information
No stored keyset property
CertUtil: -store command completed successfully.
在未导入根 CA 证书的工作站上。输出为:
C:\>certutil -store -enterprise root
CertUtil: -store command completed successfully.
即使手动导入证书后,这台机器也重新加入了域。但无济于事。
现在的问题是:
- 在哪里寻找错误或调试信息?
- 如何识别有此问题的机器?
- 如何手动触发 ldap 证书的导入?
- 这是分发根 CA 证书的正确方法吗?我倾向于不使用组策略进行简单分发,但另一方面找不到有关 ldap 分发过程的太多信息。
答案1
需要检查以下几件事:
- 此客户端上的证书自动注册功能是否已禁用?缺少自动注册功能可以解释缺少导入。
- 由于手动导入,证书是否位于受信任根存储中,只是不在企业信任容器中?请检查 中的计算机帐户的受信任根存储
certmgr.msc
。 - 它可能已导入然后由于某种原因被删除?如果它认为它已导入,则不会再次导入;清除 下的子项
HKLM\Software\Microsoft\Cryptography\AutoEnrollment\AEDirectoryCache
,然后使用 重新运行自动注册certutil -pulse
。
答案2
“我不喜欢使用组策略进行简单的分发……”
为什么不呢?这正是 GP 的设计目的 - 将通用设置/配置分发给域 PC。只需将根证书导入到 GPO 下计算机配置 > 策略 > Windows 设置 > 安全设置 > 公钥策略 > 受信任的根证书颁发机构