[英]Is it possible to validate both self-signed and authentic certificates?
假设有一个应用程序需要与多个服务器通信,其中一些服务器处于开发模式,并且正在使用自签名证书。 其他服务器正在使用真实证书。
是否可以将像这样的用于验证自签名证书指纹的技术与常规验证机制结合起来?
在.NET的HttpWebRequest / Response中使用自签名证书
换句话说,当自定义验证失败时,我想将自定义验证与普通验证链接起来。 当以下变量为非null且自定义验证程序返回false时,是否发生默认实现?
ServicePointManager.ServerCertificateValidationCallback
编辑:实际上,看一下验证回调的签名,它看起来好像是在常规验证之后发生的回调? 任何人都可以验证情况吗?
bool ValidateServerCertficate(
object sender,
X509Certificate cert,
X509Chain chain,
SslPolicyErrors sslPolicyErrors); // are errors from the regular validation?
我认为您不能调用默认验证器,但不必这样做。 实现自定义回调,并查看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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.