热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS11ATS(AppTransportSecurity)不再接受自定义锚证书?

如何解决《iOS11ATS(AppTransportSecurity)不再接受自定义锚证书?》经验,有好办法吗?

我使用"NSMutableURLRequest"租用自签名证书,当使用带有"SecTrustSetAnchorCertificates"的自定义证书锚定证书时,iOS 11失败并显示以下错误消息:

refreshPreferences: HangTracerEnabled: 1
refreshPreferences: HangTracerDuration: 500
refreshPreferences: ActivationLoggingEnabled: 0 ActivationLoggingTaskedOffByDA:0
ATS failed system trust
System Trust failed for [1:0x1c417dc40]
TIC SSL Trust Error [1:0x1c417dc40]: 3:0
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)
Task <721D712D-FDBD-4F52-8C9F-EEEA28104E73>.<1> HTTP load failed (error code: -1200 [3:-9802])
Task <721D712D-FDBD-4F52-8C9F-EEEA28104E73>.<1> finished with error - code: -1200

以前适用于iOS 10的内容在IO 11中不再有效.

我知道iOS 11不再支持以下内容:

RC4 3DES-CBC AES-CBC

MD5 SHA-1

<2048位RSA发布密钥 - 与服务器的所有TLS连接

HTTP://

在SSLv3

TLS 1.0

TLS 1.1

除了一个SHA-1指纹外,证书不使用这些,但也列出了SHA-256指纹.

通过添加以下内容,我们可以绕过ATS(App Transport Security)错误:

NSAppTransportSecurity

        NSExceptionDomains
        
            mydomain.com
            
                
                NSIncludesSubdomains
                
                NSExceptionRequiresForwardSecrecy
                
            
        

通过将根/锚证书安装到手机本身也可以在不需要将mydomain.com列入白名单的情况下工作.

这是否意味着ATS不再支持自签名证书?

这曾经在iOS 10中工作:

SecTrustSetAnchorCertificates(serverTrust, (__bridge CFArrayRef)certs);

使用NSMutableURLRequest在Mac上显示许多故障和安装根证书进入"系统"后密钥库SecTrustSetAnchorCertificates成功.这是在macOS 10.12.6上完成的.

nscurl --verbose --ats-diagnostics https://

如何使用自定义证书进行此工作,但无需安装证书或将域列入白名单?


推荐阅读
author-avatar
如痴如醉as_961
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有