我寻找这些信息已经有一段时间了,我可能找错了地方。
我正在为iOS使用XMPPFramework,并且我们有一个要求(遗憾的是)允许从我们的客户机到我们的xmpp ejabberd服务器的TLS1.0连接。
有没有一种方法可以验证我使用哪个版本的TLS进行身份验证?
我知道正在进行安全连接,因为调用了xmppStreamDidSecure委托。
我在info.plist中设置了required属性,将TLS auth限制为1.0。但是,我不知道这是否会影响xmppframework库?我会假设整个应用程序都会受到那里设置的限制。
<plist version="1.0">
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
<key>NSExceptionDomains</key>
<dict>
<key>xxx.xxx.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<false/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
</dict>
</dict>发布于 2016-05-07 02:01:54
我建议您使用包嗅探器/代理工具,如Charles或WireShark,特别是当它是发起请求的第三方库时。但是,即使发起身份验证的是您自己的代码,我也非常确定苹果的框架会处理实际的细节事务,因此您不会在代码级别获得太多可见性(您可能会通过桥接到CFNetworking来找到更多细节,但这是万岁的)。
顺便说一句,您可能应该使用NSExceptionMinimumTLSVersion;“临时”键是用于早期iOS 9测试版的:http://www.neglectedpotential.com/2015/06/working-with-apples-application-transport-security/。此外,由于这是作为最低版本记录的,因此不能保证框架库不会尝试使用高于该版本的。
https://stackoverflow.com/questions/37077969
复制相似问题