gpt4 book ai didi

c# - X509Store.Certificates.Find 将 validOnly 设置为 true 不会返回中间机构证书

转载 作者:行者123 更新时间:2023-11-30 17:54:58 26 4
gpt4 key购买 nike

我安装了证书:

  • 证书(本地计算机)
    • 受信任的根证书颁发机构
      • 证书

此代码使证书有效。

X509Store certStore = new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine);
certStore.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly);

try {
var oAuthRootCertificateList = certStore.Certificates.Find(findType, findValue, true);
oauthRootCertificate = oAuthRootCertificateList[0];
} catch (Exception ex) {
Trace.TraceError(ex.Message);
} finally {
certStore.Close();
}

*(findType 和 findValue 已在代码中预先设置)

一切正常,代码也很好。

现在我已从“受信任的根证书颁发机构”中删除了证书并将其安装在:

  • 证书(本地计算机)
    • 中级认证机构
      • 证书

因为 Azure 不允许我在受信任的根分支上部署证书。

现在,代码失败了。我必须将最后一个参数 (validOnly) 从 true 更改为 false 才能运行。

您可以查看Find方法的帮助here .

知道为什么它没有运行以及如何解决它吗?

最佳答案

中间存储中的证书用于证书链验证目的。如果您的证书是自签名证书,则其颁发者需要出现在受信任的根颁发机构中才能使证书验证成功。

仅将其放入中间证书颁发机构是不够的。

关于c# - X509Store.Certificates.Find 将 validOnly 设置为 true 不会返回中间机构证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15528427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com