我已经安装了iOS 13 beta版并运行了包含很多网络请求的框架,但是出现了此错误:
2019-09-19 15:01:33.566811+0200 ---[395:25439] Connection 4: default TLS Trust evaluation failed(-9814)
2019-09-19 15:01:33.567022+0200 ---[395:25439] Connection 4: TLS Trust encountered error 3:-9814
2019-09-19 15:01:33.567110+0200 ---[395:25439] Connection 4: encountered error(3:-9814)
2019-09-19 15:01:33.569824+0200 ---[395:25439] Connection 4: unable to determine interface type without an established connection
2019-09-19 15:01:33.584952+0200 ---[395:25439] Task <D97FD611-0B48-4DCE-99C9-6A971E5E6524>.<4> HTTP load failed, 0/0 bytes (error code: -1202 [3:-9814])
我试图找出导致该问题的原因,但没有成功。谁能帮我吗?
答案 0 :(得分:11)
Apple从iOS 13和macOS 10.15开始为TLS服务器证书定义了stricter rules。
所有TLS服务器证书必须符合iOS 13和macOS 10.15中的这些新安全要求:
TLS服务器证书和使用RSA密钥的颁发CA必须使用密钥大小大于或等于2048位。使用RSA密钥大小小于2048位的证书不再受TLS信任。
TLS服务器证书和颁发CA必须在签名算法中使用SHA-2系列的哈希算法。不再信任SHA-1签名的证书。
TLS服务器证书必须在证书的“使用者备用名称”扩展名中显示服务器的DNS名称。证书的CommonName中的DNS名称不再受信任。
此外,在2019年7月1日之后颁发的所有TLS服务器证书(如证书的NotBefore字段中所示)必须遵循以下准则:
TLS服务器证书必须包含包含id-kp-serverAuth OID 的ExtendedKeyUsage(EKU)扩展。
TLS服务器证书必须具有825天或更短的有效期(在证书的NotBefore和NotAfter字段中表示)。
最后一点:
违反这些新要求的TLS服务器连接将失败,并可能导致网络故障,应用程序失败以及网站无法在iOS 13和macOS 10.15的Safari中加载。
答案 1 :(得分:0)
我将添加一些其他信息。要检查您的证书是否有效,可以在“钥匙串访问”中打开它,并检查它是否包含正确的信息:
OpenSSL的配置示例:
[ ca ]
default_ca = CA_default
[ CA_default ]
default_md = sha256
default_days = 825
[ req ]
prompt = no
default_bits = 4096
distinguished_name = req_distinguished_name
x509_extensions = req_ext
[ req_distinguished_name ]
countryName = ...
stateOrProvinceName = ...
localityName = ...
organizationName = ...
commonName = google.com
[ req_ext ]
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = google.com
DNS.2 = www.google.com
要生成新的密钥证书对,请运行以下命令:
openssl req -newkey rsa:4096 -nodes -keyout key.pem -x509 -out certificate.crt -days 825 -config config.cnf