TLS版本支持影响iOS Native App无法打开页面问题解决

1,301 阅读1分钟

今天线上使用以前的一个功能的时候,发现ios的Native App里使用webView打开银行网站会出现打不开的问题 抓系统日志发现network err 9836 完全没有头脑,各种google也没有找到个所以然 后来问过大佬们发现,实际是因为TLS版本支持问题导致的 我们app中使用的 App Transport Security Settings 中,单独配置域名的情况下,我们没有分别配置 NSExceptionMinimumTLSVersion 这一项,从而导致系统默认会使用TLSv1.2去调用web相关的内容,而在要访问的页面中,使用https链接访问,但是实际网站支持的TLS版本为v1.1甚至1.0版本,所以导致无法访问(iOS9 默认使用TLSv1.0,所以可以访问页面,官方给出的是默认为1.2版本,暂不清楚原因)

查看网站TLS版本命令可以使用下面两种方式:

nscurl --ats-diagnostics xxx.com

该命令只要看到Configuring TLS exceptions for xxx.com中,TLSv1.2版本的Result为Pass,默认配置即可访问

openssl s_client -connect example.com:443 -tls1_2

-tls1_2 - just use TLSv1.2 -tls1_1 - just use TLSv1.1 -tls1 - just use TLSv1

该命令只要拿到的结果为加密字符,则默认配置即可访问

目前的解决方式: NSExceptionMinimumTLSVersion 配置为TLSv1.0即可 暂未提交审核,无法确定是否可以通过苹果的审核