HTTPS 错误排查经验总结
对于WEB服务器来说,随着互联网对于数据安全的重视,HTTPS已然成为标配,自从2017.1.1日开始,苹果强制所有提交到 App Store 的应用强制开启ATS(App Transport Security)安全功能。启用ATS后,它会屏蔽明文HTTP资源加载,强制App通过HTTPS连接网络服务,通过传输加密保障用户数据安全。
ATS默认的安全要求:
服务器必须支持传输层安全(TLS)协议1.2以上版本;
通讯加密套件仅限支持完全正向加密的套件;
证书必须使用SHA256或更高的哈希算法签名;以及2048位以上RSA密钥或256位以上ECC密钥。
不满足以上条件,ATS会拒绝连接。
HTTPS的部署与服务需要复杂的前期工作,主要包括证书,加解密等。当然也是最容易出现问题的地方。
证书问题
字签证书
认证证书
验证证书与私钥是否匹配:
openssl x509 -noout -text -in your.crt
openssl rsa ——————-
openssl
版本历史
(openssl1.0.1+版本支持TLS1.1和TLS1.2协议)
curl
版本历史
链接:curl版本Changes
关键版本节点:
- 支持SNI:curl-7.18.1 - March 30 2008
-SNI(Server Name Indification) 固定IP地址访问:7.21.3 - December 15 2010,
-访问格式:curl https://host/uri –resolve host:443:IP , 比如curl https://www.example.com –resolve www.example.com:443:192.168.1.101 这样就能固定访问的IP地址以及端口,而不会造成host与证书中CN不一致导致的证书错误了。证书报错实例:curl https://192.168.1.101/uri -H “host:www.example.com” 注意的是,此种方式访问curl不会携带SNI扩展信息。TLSV1.3 supported: 7.52.0 - December 21 2016