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