Ios 验证服务器是否符合Apple';s ATS/TLS 1.2要求

Ios 验证服务器是否符合Apple';s ATS/TLS 1.2要求,ios,ssl,tls1.2,app-transport-security,Ios,Ssl,Tls1.2,App Transport Security,因此,苹果要求TLS1.2对从iOS 9开始的URL进行前向保密。独立于应用程序,验证服务器是否满足所有要求的最佳方法是什么 nscurl完全不起作用——或者我不知道如何使用它。我的输出只是重复地说CFNetwork SSLHandshake失败,尽管我知道服务器是兼容的 TLSTool在某种程度上起作用,但我不能强制使用前向保密(FS)密码 openssl可以为客户端模式指定特定的密码,但我的版本没有FS密码。如何升级openssl 最好的办法是什么?到目前为止,我已经访问了ssllabs.c

因此,苹果要求TLS1.2对从iOS 9开始的URL进行前向保密。独立于应用程序,验证服务器是否满足所有要求的最佳方法是什么

nscurl完全不起作用——或者我不知道如何使用它。我的输出只是重复地说CFNetwork SSLHandshake失败,尽管我知道服务器是兼容的

TLSTool在某种程度上起作用,但我不能强制使用前向保密(FS)密码

openssl可以为客户端模式指定特定的密码,但我的版本没有FS密码。如何升级openssl

最好的办法是什么?到目前为止,我已经访问了ssllabs.com的analyze.html。有什么建议吗?

基本上是
nscurl--ats diagnostics
只会尝试连接到服务器的所有可能变体,并对每个测试的通过/失败结果进行响应。您应该找到服务器通过的测试,并相应地设置ATS配置

这是一篇关于ATS和检查服务器合规性的好文章,它还包含一个nscurl示例。

使用
nscurl
(可在macOS El Capitan和更高版本中获得),您可以使用
--ATS tls版本
开关专门测试tls 1.2合规性,例如:

nscurl--ats诊断--ats tls版本TLSv1.2

这也将测试完美的前向保密性。如果要禁用PFS测试,请使用
--ats禁用PFS
开关


nscurl——ats诊断——ats tls版本TLSv1.2——ats禁用pfs
方法1:

如果要测试的URL可公开访问,则可以使用公共SSL测试服务,如以下服务:

输入URL后,标题为“握手模拟”的部分列出了“Apple ATS 9/iOS 9”,并将指出TLS 1.2是否成功协商以及使用了哪种连接密码套件。如果使用的密码套件列在下面的ATS技术要求下,并且TLS 1.2已成功协商,则服务器已为ATS正确配置

方法2:(其他人也提到了这一点)

在运行OS X El Capitan的Mac上,在终端中运行以下命令:

/usr/bin/nscurl --ats-diagnostics https://<url>
如果服务器已配置为TLS版本1.2,您将看到使用TLSv1.2协议的数据包。如果在监视进入URL的请求时只看到客户机Hello数据包,那么移动设备和URL之间没有协商TLSv1.2


这里列出的所有方法都有效,但需要一些人工。我发现最好的方法是使用SSL实验室测试服务器,并将结果与苹果的要求进行比较。这看起来像是可以自动化的东西,所以我创建了一个工具,可以做到这一点:

如果您将域作为参数传入(例如),您将获得以下信息:

  • 您的服务器是否符合ATS标准
  • 如果需要,如何修复服务器
  • 如有必要,如何添加ATS例外
  • SSL实验室的结果

  • 谢谢nscurl现在对我有效。我可以看到它尝试了不同的组合。网站关闭:应用程序错误-应用程序中出现错误,您的页面无法提供服务。如果您是应用程序所有者,请查看日志以了解详细信息。
    ssl.record.version == 0x0303