由于我们的网络设置,去年我们迁移业务时,我们将 Exchange 2010 切换为使用AWS SES 中继我们发出的电子邮件直到昨天,Exchange 开始无法与 SES 建立 TLS 连接,每次尝试连接时,事件日志中都会出现此错误。
无法验证连接器 Amazon SES 的智能主机的 TLS 证书。证书的证书验证错误为 UntrustedRoot。如果问题仍然存在,请联系智能主机的管理员以解决问题。
我在 Windows 上安装了 OpenSSL,然后运行了我发现的命令在此主题中
openssl s_client -connect email-smtp.us-east-1.amazonaws.com:25 -starttls smtp
CONNECTED(000000EC)
depth=1 C = US、O = Symantec Corporation、OU = Symantec Trust Network、CN = Symantec Class 3 Secure Server CA - G4
验证错误:num=20:无法获取本地颁发者证书
---
证书链
0 s:/C=US/ST=Washington/L=Seattle/O=Amazon.com, Inc./CN=email-smtp.us-east-1.amazonaws.com
i:/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3 Secure Server CA - G4
1 s:/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3
Secure Server CA - G4
i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc.
- 仅供授权使用/CN=VeriSign Class 3 Public Primary Certification Authority - G5
---
服务器证书
[为简洁起见已删除]
subject=/C=US/ST=Washington/L=Seattle/O=Amazon.com, Inc./CN=email-smtp.us-east-1.amazonaws.com
issuer=/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3 Secure Server CA - G4
---
未发送客户端证书 CA 名称
---
SSL 握手已读取 3005 个字节并写入 708 个字节
---
新的,TLSv1/SSLv3,密码为 AES256-SHA
服务器公钥为 2048 位
支持安全重新协商
压缩:无
扩展:无
无 ALPN协商的
SSL 会话:
协议:TLSv1
密码:AES256-SHA
会话 ID:5576FCDBA77EB88DC9C2678EA399604E0A4543E5CFC0FA1E89F7320A7A84993C
会话 ID-ctx:
主密钥:CBD8DEA48F07E570896E02CBDC0E1DA08F0DA1D4CA901522B05A9C6F66A3E4F9 811AA12DE24BA0C14402F5585C32BF05
密钥参数:无
PSK 身份:无
PSK 身份提示:无
SRP 用户名:无
开始时间:1433861339
超时:300(秒)
验证返回代码:20(无法获取本地颁发者证书)
Linux 和 Windows 上唯一的区别是最后一行
验证返回代码:20(无法获取本地颁发者证书)
我怀疑这是 CA 链问题,但我该如何解决呢?运行 Hub Transport 的服务器是 Windows Server 2008 机器。
答案1
所以我终于找到了答案(其他人也遇到了同样的问题)。我的观点是正确的,CA 链缺少了一些东西。显然,这些东西就是Verisign 3 级公共主要认证机构 - G4(根据您的浏览器,也会列为 Symantec)。您可以在以下位置查看正在使用的新证书https://www.amazonsha256.com/
我关注了TechNet 安装新根证书的步骤这里还有一点小问题。他们没有在任何地方提到这一点,但如果您获取 CERTIFICATE 声明并将其以纯文本形式保存在带有.cer
扩展名的文件中,它将导入 Windows 而不会出现任何问题。
导入后,SES 再次工作。我不知道为什么它在 MS 计算机商店中丢失,而在 IE 商店中却没有丢失。