我需要在进行SSL连接时验证4件事
码:
options.withT1s(new MqttClientOptionsBuilderT1sParameters()
{
CertificationValidationCallBack=(cer, chain, error, o) =>
{
if(//do checks here)
{
// check pass
return true;
}
else
{
// check fail
return false;
}
}
}
这四项检查已由系统完成。如果您没有自定义回调,那将是您的强制执行。
在自定义回调中,那些状态由error
和chain
参数表示... error
是[Flags]值。
如果设置了RemoteCertificateNameMismatch
,则该名称与SAN条目(如果没有SAN-DNS条目,则为CN条目)不匹配 - 您的条件(1)。
如果设置了RemoteCertificateChainErrors
,则chain
对象将指示它无效的原因(某些内容已过期,根目录不可信,以及更多潜在问题)。
所以,最简单的答案(在没有注册回调之后)是return errors == SslPolicyErrors.None;