APNS push 服务器端 SSL3.0 转 TLS (iPhone苹果推送服务)

苹果的官方发布

Update to the Apple Push Notification Service

October 22, 2014
The Apple Push Notification service will be updated and changes to your servers may be required to remain compatible.


In order to protect our users against a recently discovered security issue with SSL version 3.0 the Apple Push Notification server will remove support for SSL 3.0 on Wednesday, October 29. Providers using only SSL 3.0 will need to support TLS as soon as possible to ensure the Apple Push Notification service continues to perform as expected. Providers that support both TLS and SSL 3.0 will not be affected and require no changes.

"鉴于SSL 3.0最新发现的漏洞,为了保护用户,APNS决定在下周三也就是10月29号起开始停止对SSL 3.0的支持。所有仅支持SSL 3.0的推送服务需要更换为TLS以确保推送服务能够正常运行,同时支持了SSL 3.0和TLS的服务不会受到此次更新的影响。(下午我们公司所有的推送服务立马停止了)


To check for compatibility, we have already disabled SSL 3.0 on the Provider Communication interface in the development environment only. Developers can immediately test in this development environment to make sure push notifications can be sent to applications.


SSL和TLS

 Secure Socket Layer (SSL) and its successor Transport Layer Security (TLS) are protocols which use cryptographic algorithms to secure the communication between 2 entities. It is just a secure layer running on top of HTTP.



系统对SSL和TLS协议的支持情况


如果你的系统不支持,赶紧更新吧。


修改过程很简单(java和php平台修改方式一样,目前我们公司是.net的平台)

具体如下:

找到对应文件:



将SslProtocols.Ssl--改成->SslProtocols.Tls,即可。



将SslProtocols.Ssl--改成->SslProtocols.Tls,即可。


其他语言编写的push服务,默认类库中都支持此枚举类型如:java中是这样的

final SSLContext sslContext = SSLContext.<span style="color:#ff6666;">getInstance("TLS");</span>

sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);

其他语言做类似修改即可。


希望对大家有帮助!



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。