django-push-notifications
正在使用沙箱和生产证书。但是从昨天开始,它以下列错误失败。
SSLError:[错误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“导入请求; print(requests.get('https://www.howsmyssl.com/a/check',verify = False).json()['tls_version'])”
答案 0 :(得分:1)
有些人升级到tls 1.2 其他人什么也不做之后又在工作。 感觉像某些苹果服务器有问题。
我们在连接代码中多次遇到这些不良的苹果服务器之一时向其添加了重试逻辑。
https://forums.developer.apple.com/thread/114489
苹果论坛上的其他一些报道 https://forums.developer.apple.com/content?query=push
答案 1 :(得分:0)
从OpenSSL的角度来看,由于没有在服务器上启用(或支持)客户端支持的SSL / TLS Socket版本,因此与SSL服务器的客户端SSL套接字连接失败。
因此,我的猜测是服务器已将其支持的SSL / TLS协议版本限制为您的openssl客户端无法再处理它。现在仅猜测TLS 1.2和TLS 1.3。也许是TLS 1.1。
能否将客户端OpenSSL版本更新为更高版本,以查看它是否解决了连接问题?
此外,它可能有助于检查(如果可以)在客户端上启用的协议版本,以确保启用所有最高协议版本-TLS 1.1,TLS 1.2,TLS1.3-如果您具有openssl 1.1 .1。
答案 2 :(得分:0)
好像是苹果服务器问题。现在已经解决了。推送通知现在可以按预期运行。