假设有一个应用程序需要与多个服务器通信,其中一些服务器处于开发模式,并且使用的是自签名证书。其他服务器正在使用真正的证书。
是否有可能将这样的技术结合起来,以验证自签名证书的拇指指纹和正常的验证机制?
Using a self-signed certificate with .NET's HttpWebRequest/Response
换句话说,当自定义验证失败时,我想将自定义验证与普通验证联系起来。当以下变量为非空且自定义验证程序返回false时,是否发生默认实现?
ServicePointManager.ServerCertificateValidationCallback编辑:实际上,查看验证回调的签名,看起来好像回调是在常规验证之后发生的吗?有人能证实是这样吗?
bool ValidateServerCertficate(
object sender,
X509Certificate cert,
X509Chain chain,
SslPolicyErrors sslPolicyErrors); // are errors from the regular validation?发布于 2012-12-14 17:35:47
我不认为您可以调用默认的验证器,但您不必这样做。实现自定义回调并查看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
}https://stackoverflow.com/questions/13871223
复制相似问题