使用 HTTPS 端点时从 Amazon SNS 获取 "SSLPeerUnverifiedException"
Getting "SSLPeerUnverifiedException" from Amazon SNS when using HTTPS endpoint
我无法让 Amazon SNS 向我的 HTTPS 端点发送订阅消息。 CloudWatch 日志报告如下:
{
"delivery": {
"deliveryId": "7bdda6a5-0000-5d6d-b0c0-e9b254fde521",
"destination": "https://www.beta.yogacentre.com/webhooks/sns",
"providerResponse": "SSLPeerUnverifiedException in HttpClient",
"dwellTimeMs": 63661,
"attempts": 4
},
"status": "FAILURE"
}
看起来它不喜欢我使用的 SSL 证书,但我确认根 CA 是 on the list SNS checks. Chrome reports my connection uses TLS 1.2, so it should be compatible with the recent end of SSLv3 support.
作为健全性检查,我尝试订阅常规 HTTP 端点,它立即起作用。是什么导致了这个问题?如果我遗漏了什么,可以在 https://www.beta.yogacentre.com/ 找到我的证书。
从 SSLLabs 查看此网站的报告,您会看到:
This server's certificate chain is incomplete. Grade capped to B.
这意味着服务器没有正确设置,因为它没有发送所有需要的链证书,即站点的叶证书和浏览器或系统信任的根证书之间的信任路径中的所有内容。查看详细信息,您会看到服务器仅发送叶证书,"COMODO RSA Domain Validation Secure Server CA" 的缺失证书被标记为 "Extra Download"。
虽然像 Chrome 这样的一些浏览器会从 Internet 下载丢失的证书,但其他浏览器不会,浏览器之外的应用程序也不会这样做。因此,所有这些不知道丢失的链证书的客户端都将失败,因为它们无法构建信任链,这会导致您看到的 SSLPeerUnverifiedException。因此,您需要修复服务器配置以发送丢失的链证书。详细信息取决于服务器配置。
我无法让 Amazon SNS 向我的 HTTPS 端点发送订阅消息。 CloudWatch 日志报告如下:
{
"delivery": {
"deliveryId": "7bdda6a5-0000-5d6d-b0c0-e9b254fde521",
"destination": "https://www.beta.yogacentre.com/webhooks/sns",
"providerResponse": "SSLPeerUnverifiedException in HttpClient",
"dwellTimeMs": 63661,
"attempts": 4
},
"status": "FAILURE"
}
看起来它不喜欢我使用的 SSL 证书,但我确认根 CA 是 on the list SNS checks. Chrome reports my connection uses TLS 1.2, so it should be compatible with the recent end of SSLv3 support.
作为健全性检查,我尝试订阅常规 HTTP 端点,它立即起作用。是什么导致了这个问题?如果我遗漏了什么,可以在 https://www.beta.yogacentre.com/ 找到我的证书。
从 SSLLabs 查看此网站的报告,您会看到:
This server's certificate chain is incomplete. Grade capped to B.
这意味着服务器没有正确设置,因为它没有发送所有需要的链证书,即站点的叶证书和浏览器或系统信任的根证书之间的信任路径中的所有内容。查看详细信息,您会看到服务器仅发送叶证书,"COMODO RSA Domain Validation Secure Server CA" 的缺失证书被标记为 "Extra Download"。
虽然像 Chrome 这样的一些浏览器会从 Internet 下载丢失的证书,但其他浏览器不会,浏览器之外的应用程序也不会这样做。因此,所有这些不知道丢失的链证书的客户端都将失败,因为它们无法构建信任链,这会导致您看到的 SSLPeerUnverifiedException。因此,您需要修复服务器配置以发送丢失的链证书。详细信息取决于服务器配置。