赞
踩
梗概
之前工作的经历,前面技术团队的APP使用了SSL-PINNING,服务器SSL证书到期前,测试环境更换证书,在更换配置OK后,发现APP停止服务了。所有的请求全部都失败。
后来查到是APP使用了SSL-PINNING。
也就是SSL-PINNING证书到期后会导致APP拒绝服务。
改进
1.
其实,我们除了内置服务器自己的证书,也可以内置厂商中间证书。比如
像这份GeoTrust RSA CA 2018中间证书是2027年到期。一般的APP是不会10年了还可以不改版继续使用的。但假设发生一例10年不更新的用户的案例,也会发生APP停止服务。
2.
根据如何正確設定 AFNetworking 的安全連線 « Nelson 寫些 iOS 開發的東東 提供的思路,可以将证书的publicKey部分提取到客户端硬编码,每次建立TLS连接时候,匹配公钥。
服务器在更换续费证书时不要更换私钥就行了。
* 推荐需要实现防用户自己抓包的APP采取本方案。
更稳妥的做法
走默认的操作系统CA验证,但不要APP自己内置。因为APP没有证书更新、撤销机制,内置后无法对这份清单进行维护。
-----
帝玺科技(上海),您身边的ssl证书专家。现在联系我可免费体验半年多域名通配符证书。
www.digital-sign.com.cn
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。