直到几天前,我还在开发我的 iOS 8 应用程序,但今天早上我的 XCode 更新到了版本 7,iOS 模拟器更新到了 iOS 9。所以,为了满足 iOS9 ATS 要求,我必须更新 MAMP 以便它支持 TLS 1.2 和其他要求。到目前为止我还没有发现任何对我有用的东西,所以我想问一下你是否可以解释一下我设置 MAMP 以支持 iOS9 ATS 和 TLS 1.2。我的应用尝试使用的 URL 如下所示:
https://localhost:443/excogitoweb/mobile/loginM.php
如果我在浏览器中键入它们,它们会完美运行,但如果我运行我的应用程序,我会得到:
2015-09-21 20:55:10.217 ExcogitoWeb[3848:34387] CFNetwork SSLHandshake failed (-9824)
2015-09-21 20:55:10.218 ExcogitoWeb[3848:34387] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824)
所以要么我在 MAMP 配置中犯了一个错误,我错过了一些东西,但我不知道是什么。这是我到目前为止所做的:
创建运行 sha256 的自签名证书
openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
并配置我的 httpd-ssl.conf 文件,在该文件中我尝试根据 ATS 的要求启用前向保密密码
在我的 httpd-ssl.conf 文件中,我有类似的内容:
<VirtualHost localhost:443>
DocumentRoot "/Applications/MAMP/htdocs/protected"
ServerName localhost
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCertificateFile "/Applications/MAMP/conf/apache/server.crt"
SSLCertificateKeyFile "/Applications/MAMP/conf/apache/server.key"
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
</VirtualHost>
我也以同样的方式进行了配置。因此,当我运行我的应用程序时,它会因上述错误而崩溃,错误代码 9824 根据我在此处阅读的内容,表示有关 TLS 协议握手的错误。所以我担心我的 MAMP 3.3 没有运行 TLS 1.2。
有人可以帮助我并告诉我我缺少什么吗?
感谢大家的关注
更新 我刚刚尝试过
SSLProtocol +TLSv1.2
现在 Apache 服务器将不再启动。日志上没有写任何东西。我需要在我的 MAC Yosemite 上更新 ssl 吗?如何?
无论如何,恢复
SSLProtocol all -SSLv2 -SSLv3
如果我输入https://localhost,这就是我从浏览器中得到的
所以 MAMP 仍然使用 TLS 1.0 ......有没有办法强制它?