3

django-push-notifications正在使用沙盒和生产证书。但从昨天开始,它因以下错误而失败。

SSLError:[Errno 1] _ssl.c:510:错误:1409442E:SSL 例程:SSL3_READ_BYTES:tlsv1 警报协议版本

我们的代码或服务器没有变化。任何想法,为什么它已经停止工作。

更新

OpenSSL 1.0.1f 2014 年 1 月 6 日 Ubuntu:14.04

我于 2018 年 11 月 20 日升级到 OpenSSL 1.1.1a,但结果相同。

我还使用以下方法检查了我的 python 支持的 TLS 版本,并得到了“TLS 1.3”。

python -c "导入请求;打印(requests.get(' https://www.howsmyssl.com/a/check ', verify=False).json()['tls_version'])"

4

3 回答 3

1

有些人升级到 tls 1.2 其他人在什么都不做后又开始工作了。感觉像是某些苹果服务器的问题。

我们在连接代码中添加了重试逻辑,以应对其中一个坏苹果服务器。

https://forums.developer.apple.com/thread/114489

苹果论坛上的其他几份报告 https://forums.developer.apple.com/content?query=push

于 2019-03-14T13:45:10.683 回答
0

看起来是苹果服务器的问题。现在已经解决了。推送通知现在按预期工作。

于 2019-03-14T17:48:47.900 回答
0

从 OpenSSL 的角度来看,客户端 SSL 套接字与 SSL 服务器的连接失败,因为客户端支持的 SSL/TLS 套接字版本在服务器上均未启用(或支持)。

所以我的猜测是服务器已经限制了它支持的 SSL/TLS 的协议版本,以至于你的 openssl 客户端无法再处理它。只是现在猜测 TLS 1.2 和 TLS 1.3。也许是 TLS 1.1。

您能否将您的客户端 OpenSSL 版本更新到更高版本以查看它是否修复了连接问题?

此外,如果您有 openssl 1.1.1,检查(如果可以的话)您在客户端启用的协议版本以确保启用所有最高协议版本 - TLS 1.1、TLS 1.2、TLS1.3 可能会有所帮助。

于 2019-03-13T19:30:48.470 回答