iOS 客户端适配 HTTPS
常用的NSURLConnection支持HTTPS的实现;
使用NSURLConnection支持HTTPS的实现
上面是代码是通过系统默认验证流程来验证证书的。但是如何确认服务器返回的证书就是我们想要的特定证书?这就需要先在本地导入证书,设置成需要参与验证的Anchor Certificate,再调用SecTrustEvaluate来验证。
使用AFNetworking这个非常流行的第三方库来支持HTTPS。
使用AFNetworking来支持HTTPS
AFNetworking是iOS/OSX开发最流行的第三方开源库之一, AFNetworking 的安全相关设定放在AFSecurityPolicy。
AFNetworking定义了三种SSLpinningmode:
AFSSLPinningModeNone: 代表客户端无条件地信任服务器端返回的证书
AFSSLPinningModePublicKey : 代表客户端会将服务器端返回的证书与本地保存的证书PublicKey的部分进行校验;如果正确,才继续进行。
AFSSLPinningModeCertificate: 代表客户端会将服务器端返回的证书和本地保存的证书中的所有内容,包括PublicKey和证书部分,全部进行校验;如果正确,才继续进行。
以更加安全的AFSSLPinningModeCertificate验证模式为例。