windows - 为什么firefox只信任certutil安装的证书?

问题描述 投票:0回答:1

我最近研究Windows中的证书。

我尝试了两种不同的方式来安装证书: 1.使用certutil命令进行安装。例如:certutil -addstore -f "ROOT" rootCA.pem 2.使用Microsoft 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个回答
0
投票

根据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搜索。

© www.soinside.com 2019 - 2024. All rights reserved.