ATS主要作用是:防止不安全的网络连接
从 iOS 9.0 或 macOS 10.11 版本开始,必须使用https才可以连接服务器,否则ATS将拒绝连接,并在控制台打印一下提示。
App Transport Security has blocked a cleartext HTTP (http://) resourceload since it is insecure. Temporary exceptions can be configured viayour app’s Info.plist file.
确保服务器满足ATS最低要求
服务器必须使用受信任的CA签发的证书,主要包括:
- 具有完整的数字签名,表明证书未被篡改。
- 证书没有过期。
- 证书域名与访问域名匹配。
- 该证书必须由证书颁发机构 (CA) 颁发。如iOS 中可用的受信任根证书列表中所示。
ATS 需要的安全检查:
- 服务器证书必须使用至少 2048 位的 (RSA) 密钥或至少 256 位的椭圆曲线加密 (ECC) 密钥进行签名。
- 证书必须使用具有至少 256 位(即 SHA-256 或更大)的摘要长度(有时称为指纹)的安全散列算法 2 (SHA-2 )。
- 连接必须使用传输层安全 (TLS) 协议版本 1.2 或更高版本。
- 必须使用 AES-128 或 AES-256 对称密码交换数据。
- 链路必须通过椭圆曲线 Diffie-Hellman Ephemeral (ECDHE) 密钥交换支持完美前向保密 (PFS)。
https://developer.apple.com/documentation/security/preventing_insecure_network_connections