【问题标题】:windows - Why firefox only trust certificate which certutil install?windows - 为什么firefox只信任certutil安装的证书?
【发布时间】:2019-04-11 15:23:21
【问题描述】:

我最近研究了 Windows 中的证书。

我尝试了两种不同的方式来安装证书:
1.使用certutil命令安装。例如:certutil -addstore -f "ROOT" rootCA.pem
2.使用微软api安装。

certStore = CertOpenSystemStore(NULL, "ROOT")
CertAddEncodedCertificateToStore(
    certStore,
    X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
    rootCACert,
    len(rootCACert),
    CERT_STORE_ADD_REPLACE_EXISTING,
    NULL
)

安装后,我使用certmgr.msc检查是否成功。
并且 firefox 的 security.enterprise_roots.enabled 设置为 True。

但是我发现了一个奇怪的情况。
Firefox 只信任 certutil 安装的证书。

谁能告诉我为什么?

提前致谢!

【问题讨论】:

    标签: windows firefox certificate certutil


    【解决方案1】:

    根据Mozilla Wiki有版本差异:

    从版本 49 开始,... Firefox 将检查 HKLM\SOFTWARE\Microsoft\SystemCertificates 注册表位置(对应于 API 标志 CERT_SYSTEM_STORE_LOCAL_MACHINE)

    从版本 52 开始,Firefox 还将搜索注册表位置 HKLM\SOFTWARE\Policies\Microsoft\SystemCertificates\Root\Certificates 和 HKLM\SOFTWARE\Microsoft\EnterpriseCertificates\Root\Certificates(对应于 API 标志 CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY 和 CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE,分别)。

    所以很高兴知道您使用的是什么版本。

    回答您的问题:由于所搜索商店的标志在 wiki 中命名,您似乎在 API 解决方案中使用了错误的商店。看看函数CertOpenStore 而不是CertOpenSystemStore。这允许通过例如CERT_SYSTEM_STORE_LOCAL_MACHINE 作为 dwFlags 打开 Mozilla 搜索的商店。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-14
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 2022-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多