我如何解决这个SSL证书错误?

首先,我不是服务器pipe理员,我绝不是专家。

所以,有两台服务器,一台用于电子邮件转发,另一台用于运行一个网站。 该网站将使用.NET通过标记为UseSSL的SMTP发送消息。 但是由于错误而失败

根据validation程序,远程证书无效。

所以我启用跟踪和日志输出这个消息

System.Net信息:0:[4656] SecureChannel#22800124 – 远程证书有错误:System.Net信息:0:[4656] SecureChannel#22800124 – 证书链已处理,但终止于不受信托提供者。

System.Net信息:0:[4656] SecureChannel#22800124 – 远程证书被用户validation为无效。

System.Net错误:0:[4656] SmtpClient中的exception#34708722 ::发送 – 根据validation过程,远程证书无效。

所以我们再次检查,并在电子邮件服务器上的证书已过期。 有人在电子邮件服务器上创build了新的自签名证书,并将其导入到Web服务器上的受信任根证书颁发机构。 这并没有解决这个错误。

任何想法,我还可以检查什么? 还是那不是你如何设置一个可信的证书?

另外,当不使用SSL时,应用程序可以正常工作,应用程序本身也不会出现问题,因为直到不久之前(旧证书过期),它才能在其他服务器上正常运行。

我认为你需要重新启动IIS来重新加载证书密钥库。

您也可以使用以下方式检查远程证书:

openssl s_client -connect SMTPserver:port|openssl x509 -text 

你可以在http://www.openssl.org/related/binaries.htmlfindopenssl

这可能是我使用openssl toolchain的s_clientfunctionfind的最好的在线教程。

查看Paul Heinlein 的OpenSSL命令行Howto 。

Paul的所有指南都很棒,但是这个指南非常适合所有可以用来pipe理和/或排除SSL证书问题的工具。