首先,我不是服务器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
这可能是我使用openssl toolchain的s_clientfunctionfind的最好的在线教程。
查看Paul Heinlein 的OpenSSL命令行Howto 。
Paul的所有指南都很棒,但是这个指南非常适合所有可以用来pipe理和/或排除SSL证书问题的工具。