一. 参考
Network security configuration
https://developer.android.com/training/articles/security-config#CertificatePinning
二. 理解
1.Android客户端应用,通过信任系统预装的CAs,使用其公钥来验签,该CA颁发的证书.
(此证书包含要访问服务的服务器域名,以及其公钥),用以证明该机构提供的公钥和域名就是该机构的真实域名和公钥;
当客户端有了该服务机构的域名和公钥后就可以,用公钥加密要传递给服务器的信息;
并使用该公钥去验签, 签名. 以验证服务器发的信息的完整性和来源的真实性.
- 证书锁定, 实际上就是设置和固定特定域名(或本应用), 所信任的证书. 以防止有预装的CA颁发了欺诈性证书, 进而造成中间人攻击.