我使用 OpenSSL 创建了一个自签名根 CA 证书(我们称之为
RootCA
)。InterCA
签署 CSR 来创建一个中间 CA(我们称之为 RootCA
)。EndCert.cer
签署 CSR 创建了最终用户证书 (InterCA
)。
我将
RootCA
的公共证书(rootca.cer
,PEM格式)导入到Windows受信任的根证书中。InterCA.cer
时,Windows 将打开它,显示其证书路径(受信任的 RootCA
的子级)并将其确认为“有效证书”(捕获的左侧部分)然后我制作了一个捆绑包
EndCertBundle.cer
作为 EndCert.cer
然后 InterCA.cer
的串联。EndCert
(捆绑)< InterCA.cer
(捆绑)< RootCA
(可信)EndCertBundle.cer
为“有效证书”。InterCA.cer
),并且消息“无法找到证书颁发者” “在“状态”框中[/编辑]
这样操作吗?
当根证书受信任并且中间证书捆绑在最终证书中时,如果它们不允许信任证书链,那么捆绑意味着什么?
[编辑]我尝试将根证书导入 Adobe Acrobat Reader。
在那里,使用
EndCert.cer
签名的 pdf 被识别为有效签名(不导入 InterCA.cer
,既不导入 EndCert.cer
,也不使用捆绑包签名,仅使用 EndCert.cer
签名)
当您双击文件时,Windows 仅处理其中的第一个 PEM 对象。 (支持串联 PEM 文件中的多个对象实际上是“依赖于应用程序”的事情之一)。
因此 Windows 只能看到您的最终实体证书。 Windows 尚不知道您的中间证书(它尚未隐式或显式保存到用户或计算机的CertificateAuthorities 证书存储中),并且您的证书不包含颁发机构信息访问扩展,用于识别如何找出谁是颁发 CA 是,或者该 URL 无法解析。所以现在它留下了“我看到一个证书,但找不到它的父级”,并关闭。
如果您有适当的 AIA 扩展,或者将您的颁发者证书明确保存到证书颁发机构存储中,则双击即可。