gpt4 book ai didi

c# - 我可以使用 C# 确保 X509Certificate 是由可信机构颁发的吗?

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:07 25 4
gpt4 key购买 nike

如果我使用 X509Certificate.CreateFromSignedFile 获取用于签署文件的证书,我能否确认它是由受信任的机构签署的 - 而不仅仅是某种“自签名”证书?

我想从证书中提取“主题”(公司)名称,以确保我正在使用的非托管 DLL 不受干扰(我无法对其进行校验和,因为它经常和独立地更新)并且是官方的。

但是,我担心伪造的 DLL 可能会使用“自签名”证书进行签名并返回原始公司的名称。所以,我想确保证书是由 Versign、Thwate 或类似机构颁发的(任何安装在机器上的证书存储库上的东西都可以)。

在使用 X509Certificate.CreateFromSignedFile 时,如果可以的话,我该怎么做?还是它会自动执行此操作(即“自签名”证书将失败)?

最佳答案

如果它不是有效的证书,您将得到一个异常(exception)。您想检查公司名称等什么问题...这是代码:

  ServicePointManager.ServerCertificateValidationCallback +=
new System.Net.Security.RemoteCertificateValidationCallback(customXertificateValidation);

private static bool customXertificateValidation(
object sender, X509Certificate cert,
X509Chain chain, System.Net.Security.SslPolicyErrors error)
{

// check here 'cert' parameter properties (ex. Subject) and based on the result
// you expect return true or false

return false/true;
}

编辑: 以上代码仅适用于请求获得无效(自签名、过期...等)证书的 https 资源。关于从签名文件中提取签名的问题,请查看此处:Extracting Digital Signatures from Signed Files with .NET

关于c# - 我可以使用 C# 确保 X509Certificate 是由可信机构颁发的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2856576/

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