使用启用了 SSL 的配置连接 SMTP 服务器时 RemoteCertificateValidationCallback 方法中的 RemoteCertificateNameMismatch
RemoteCertificateNameMismatch in RemoteCertificateValidationCallback method while connecting SMPT server with ssl enabled configuration
所有,
启用 SSL 配置后 SMPT 通信不工作。
我正在通过 SMTP 发送电子邮件,它运行良好。但是,当我启用 SSL 之后,它无法正常工作,并在 RemoteCertificateValidationCallback(回调方法)中出现错误,描述为 - RemoteCertificateNameMismatch 和证书链错误。
所以我通过在 RemoteCertificateValidationCallback 中返回 True 绕过了这个错误,但我们知道在生产环境中不推荐这样做。
然后我使用 OPENSSL 命令从 SMPT 服务器(端口 25)下载了 SSL 证书,并在受信任的根中安装了证书,并将此证书附加到 SmtpClient.ClientCertificates。
代码如下:
*SmtpClient SmtpClient= new SmtpClient(地址)
SmtpServer.ClientCertificates.Add(clientCert);*
我再次测试了代码,有趣的是,我的第二个错误消失了,只得到第一个错误,即 RemoteCertificateValidationCallback 块中的 RemoteCertificateNameMismatch。
你能帮我一下吗。
提前致谢。
此致
阿卜杜勒
我得到了解决方案,感谢 MSDN :)
我已将 SMTP 服务器名称更改为证书名称(在证书中提到为 CN 属性)并且它正在运行。
此致
阿卜杜勒
所有,
启用 SSL 配置后 SMPT 通信不工作。
我正在通过 SMTP 发送电子邮件,它运行良好。但是,当我启用 SSL 之后,它无法正常工作,并在 RemoteCertificateValidationCallback(回调方法)中出现错误,描述为 - RemoteCertificateNameMismatch 和证书链错误。
所以我通过在 RemoteCertificateValidationCallback 中返回 True 绕过了这个错误,但我们知道在生产环境中不推荐这样做。
然后我使用 OPENSSL 命令从 SMPT 服务器(端口 25)下载了 SSL 证书,并在受信任的根中安装了证书,并将此证书附加到 SmtpClient.ClientCertificates。
代码如下:
*SmtpClient SmtpClient= new SmtpClient(地址)
SmtpServer.ClientCertificates.Add(clientCert);*
我再次测试了代码,有趣的是,我的第二个错误消失了,只得到第一个错误,即 RemoteCertificateValidationCallback 块中的 RemoteCertificateNameMismatch。 你能帮我一下吗。
提前致谢。
此致
阿卜杜勒
我得到了解决方案,感谢 MSDN :)
我已将 SMTP 服务器名称更改为证书名称(在证书中提到为 CN 属性)并且它正在运行。
此致
阿卜杜勒