首先,我不是服务器管理员,也不是专家。
因此,有两个服务器,一个用于电子邮件中继,另一个运行网站。该网站将使用 .NET 通过 SMTP 发送带有 UseSSL 标记的消息。但是由于错误而失败
根据验证程序,远程证书无效。
因此我启用了跟踪,日志输出了此消息
System.Net 信息:0:[4656] SecureChannel#22800124 - 远程证书有错误:System.Net 信息:0:[4656] SecureChannel#22800124 - 证书链已处理,但终止于信任提供商不信任的根证书。
System.Net 信息:0:[4656] SecureChannel#22800124 - 远程证书经用户验证无效。
System.Net 错误:0:[4656] SmtpClient#34708722::Send 中出现异常 - 根据验证程序,远程证书无效。
所以我们仔细检查了一下,发现电子邮件服务器上的证书已过期。有人在电子邮件服务器上创建了一个新的自签名证书,并将其导入到 Web 服务器上受信任的根证书颁发机构。但这并没有修复错误。
还有什么我可以检查的吗?或者这不是您设置受信任证书的方式?
此外,当不使用 SSL 时,应用程序可以正常工作,并且应用程序本身应该没有任何问题,因为它直到不久前(旧证书过期时)都可以正常工作,并且可以在其他服务器上正常运行。
答案1
我认为您需要重新启动 IIS 才能重新加载证书密钥库。
您还可以使用以下命令检查远程证书:
openssl s_client -connect SMTPserver:port|openssl x509 -text
您可以在以下位置找到 opensslhttp://www.openssl.org/related/binaries.html
答案2
这可能是我找到的关于使用客户端特点openssl工具链。
查看OpenSSL 命令行操作指南作者:保罗·海因莱因。
Paul 的所有指南都很棒,但这一个脱颖而出,因为它向您详细介绍了可用于管理和/或解决 SSL 证书问题的所有工具。
答案3
您还可以使用http://www.sslshopper.com/ssl-checker.html以确保服务器发出正确的中间证书并且没有任何其他错误。