1

假设有一个应用程序需要与多个服务器通信,其中一些服务器处于开发模式并使用自签名证书。其他服务器正在使用真实证书。

是否可以将这种验证自签名证书的指纹的技术与正常的验证机制结合起来?

将自签名证书与 .NET 的 HttpWebRequest/Response 一起使用

换一种说法,当自定义验证失败时,我想将自定义验证与普通验证链接起来。当以下变量为非 null 并且自定义验证器返回 false 时,是否会发生默认实现?

ServicePointManager.ServerCertificateValidationCallback

编辑:实际上,查看验证回调的签名看起来好像回调是在常规验证之后发生的?任何人都可以验证是这种情况吗?

 bool ValidateServerCertficate(
        object sender,
        X509Certificate cert,
        X509Chain chain,
        SslPolicyErrors sslPolicyErrors); // are errors from the regular validation?
4

1 回答 1

1

我认为您不能调用默认验证器,但您不必这样做。实现自定义回调并查看SslPolicyErrors枚举。如果它等于SslPolicyErrors.None,那么它是一个很好的证书,无论如何都会得到验证。否则,您是否自定义验证。

internal static bool ValidateCerts(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
    if (sslPolicyErrors == SslPolicyErrors.None)
    {
        // Good certificate.
        return true;
    }
    //Do custom validation here
}
于 2012-12-14T17:35:47.380 回答