相关疑难解决方法(0)

c# 验证 X509Certificate2:我这样做对吗?

使用框架 4.5.1 和以下要求,我这样做对吗?

  1. 证书中的 URL 必须与给定的 URL 匹配
  2. 证书必须有效且可信
  3. 证书不得过期

以下内容通过了,但这足够了吗?

特别是对chain.Build(cert) 的调用是否满足上面的#2

    protected bool ValidateDigitalSignature(Uri uri)
    {
        bool isValid = false;
        X509Certificate2 cert = null;
        HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;
        using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
        {
            response.Close();
        }

        isValid = (request.ServicePoint.Certificate != null);
        if(isValid)
            cert = new X509Certificate2(request.ServicePoint.Certificate);
        if (isValid)
        {
            X509Chain chain = new X509Chain();
            chain.ChainPolicy.RevocationMode = X509RevocationMode.Online;
            chain.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain;
            chain.Build(cert);
            isValid = (chain.ChainStatus.Length == 0);
        }
        if (isValid)
        {
            var dnsName …
Run Code Online (Sandbox Code Playgroud)

c# ssl x509certificate2

5
推荐指数
1
解决办法
9532
查看次数

标签 统计

c# ×1

ssl ×1

x509certificate2 ×1