最近看见苹果下发的通知是关于所有iosapp都要使用安全的https链接与服务器进行通信的,并且是2017年1月1日开始执行(虽然后期另行通知是时间有所推迟),那也是早晚的事了。
苹果要求的安全https链接不是在http上加一个s这么简单,那满足ATS我们需要做些什么呢
①必须是苹果信任的CA证书机构颁发的证书,不能是自签证书。
②后台传输必须满足:TLS1.2(这个很重要)
③证书必须使用SHA256或者更好的哈希算法进行签名。
下面上干货,如果你的项目是JAVA + Tomcat/Jboss 开发的那请看下面,你要找到相应配置证书的地方在xml配置如下,其中ciphers是加密方式、sslEnabledProtocols是使用TLS协议而关闭SSL协议(因为ssl协议出现漏洞所以关闭它)。
<connector port="443"
maxhttpheadersize="8192"
address="127.0.0.1"
enablelookups="false"
disableuploadtimeout="true"
acceptCount="100"
scheme="https"
secure="true"
clientAuth="false"
SSLEnabled="true"
sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
TLS_ECDHE_RSA_WITH_RC4_128_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA256,
TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_256_CBC_SHA256,
TLS_RSA_WITH_AES_256_CBC_SHA,
SSL_RSA_WITH_RC4_128_SHA"
keystoreFile="mydomain.key"
keystorePass="password"
truststoreFile="mytruststore.truststore"
truststorePass="password"/>
如果你的项目是.NET 开发的项目那你请看下面,.NET修改起来很简单只需安装一个程序,在 windows上 有一个很好用的软件来解决此问题 叫 IISCrypto40.exe ,可到 https://www.nartac.com/Products/IISCrypto/ 链接下载,然后配置如下
下载完后,在windows server 服务器上运行此软件,然后按照上图来勾选每一项,最后 apply后需要重启服务器,重启之后就大功告成,你的https网站安全级别也被提高。
这里主要讲解的是在https基础上使证书的协议和加密方式更安全,并且通过ios的限制,证书的生成和导入方面这里就不讲解了,网上一大堆