【问题标题】:How to verify a certificate in fiddler core?如何验证提琴手核心中的证书?
【发布时间】:2013-07-17 21:46:07
【问题描述】:

我想验证服务器颁发的证书是否有效,如果无法验证,请提醒用户选择。目前,fiddler 似乎接受了所有证书,而不会提醒用户。有没有一种机制来做到这一点?也许在提琴手核心示例项目中找到的以下代码中。我想提醒用户使用不受信任的根的自签名证书。

 static void CheckCert(object sender, ValidateServerCertificateEventArgs e)
    {
        if (null != e.ServerCertificate)
        {
            Console.WriteLine("Certificate for " + e.ExpectedCN + " was for site " + e.ServerCertificate.Subject + " and errors were " + e.CertificatePolicyErrors.ToString());


            if (e.ServerCertificate.Subject.Contains("fiddler2.com"))
            {
                Console.WriteLine("Got a certificate for fiddler2.com. We'll say this is also good for any other site, like https://fiddlertool.com.");
                e.ValidityState = CertificateValidity.ForceValid;
            }
        }
    }

【问题讨论】:

    标签: c# fiddler fiddlercore


    【解决方案1】:

    默认情况下,除非您设置Fiddler.CONFIG.IgnoreServerCertErrors = true;,否则 FiddlerCore 将验证远程证书是否是可信链的一部分

    但是,这意味着自签名证书会被 FiddlerCore 拒绝,并且由于 FiddlerCore 不显示 UI 以允许用户覆盖,这是一个问题。

    解决这个问题的方法是使用实​​现证书验证事件处理程序:FiddlerApplication.OnValidateServerCertificate += new System.EventHandler<ValidateServerCertificateEventArgs>(CheckCert);

    在处理程序内部,你会做这样的事情:

     private void CheckCert(object sender, ValidateServerCertificateEventArgs e)
     {
      if (SslPolicyErrors.None == e.CertificatePolicyErrors)
      {
         return;
      }
    
      DialogResult oResult = MessageBox.Show("Accept invalid certificate\nYOUR DETAILS HERE", "Certificate Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2));
    
     if (DialogResult.Yes == oResult) 
     {
       e.ValidityState = CertificateValidity.ForceValid;
     }
     else
     {  
       e.ValidityState = CertificateValidity.ForceInvalid;
     }
    

    您通常还希望缓存用户的选择,以避免在每次连接时提示他们。

    请参阅http://fiddler2.com/blog/blog/2013/01/03/evaluating-certificates-in-fiddler-and-fiddlercore 了解更多详细信息,包括完整示例。

    【讨论】:

    • 知道了!现在我有了一个起点。
    猜你喜欢
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多