x509certificate - Windows 检测证书作为根证书颁发机构

标签 x509certificate truststore windows-security

问题:如何让 Windows 在“受信任的根证书颁发机构”中检测适合安装的证书?

背景: 我正在构建一个内部站点,希望用户能够下载服务器的根证书并将其作为“受信任的根证书颁发机构”安装在其 Windows 证书信任存储中。当用户打开证书文件时,他们会到达常规证书检查屏幕。

enter image description here

然后,用户可以单击“安装证书”,然后选择“根据证书类型自动选择证书存储”。

不可避免地,选择此选项会将证书安装到“中级证书颁发机构”而不是“受信任的根证书颁发机构”

enter image description here

根证书是在 OpenSSL 中作为自签名根证书生成的。 openssl x509 报告:

    X509v3 extensions:
        X509v3 Basic Constraints: critical
            CA:TRUE, pathlen:1

如果 Windows 出于安全原因禁止以这种自动方式将证书安装为受信任的根证书颁发机构,我不会感到惊讶,但我根本无法在 Microsoft 或 MSDN 站点上找到任何文档来解释它们的“自动选择”起作用。如有任何澄清,我们将不胜感激。

最佳答案

I wouldn't be surprised if Windows prohibited certificates to be installed as a Trusted Root Certificate Authority in this automatic manner for security reasons, but I simply can't find any documentation on the Microsoft or MSDN sites that explains how their "automatic selection" works.

您遇到了确切的问题。 Microsoft 不允许用户在受信任的根 CA 存储中自动安装 CA 证书。您应该指示用户在适当的存储中安装此证书。

附:我完全不喜欢您分发根证书的方式。用户如何知道这是您的证书?他们如何知道您不会尝试冒充任何其他网站?整个想法看起来很糟糕。如果有很多客户,那么我建议从商业提供商购买最便宜的 SSL 证书。

关于x509certificate - Windows 检测证书作为根证书颁发机构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30153690/

相关文章:

android - 通过 ADB 安装用户证书

java - 延长 keystore 中 trustedCertEntry 的到期日期

java - 谷歌地理编码 SSL 握手异常

c# - 如何使用 .NET 应用 Windows 组策略?

winapi - SendInput 在 UAC 提示时失败

python - python crypto 中的发行人替代名称

java - 为什么 IE 仅拒绝 127.0.0.1 的自签名本地主机证书,而 Chrome 接受它?

Android - 在哪里获得系统签名什么属于在模拟器上运行的图像

java - 导出的证书包含私有(private)信息/实现自己的信任管理器?

windows - 没有网络访问权限的虚拟服务帐户,如 NT AUTHORITY\LocalService