网站 ssl自建证书

由于项目需求在某网站8数据,发现该网站用的是https自建证书,于是将证书下载下来发现是crt后缀的,但是iOS自建证书是要cer后缀的,于是需要转一下格式

crt证书转cer证书 终端执行以下命令

openssl x509 -in ca.crt -out server.cer -outform der

将导出后的cer证书放到项目bundle中,并作出如下配置

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    manager.responseSerializer = [AFHTTPResponseSerializer serializer];

    AFSecurityPolicy* securityPolicy = [[AFSecurityPolicy alloc] init];

    //AFSSLPinningModeNone 这个模式表示不做 SSL pinning,只跟浏览器一样在系统的信任机构列表里验证服务端返回的证书。若证书是信任机构签发的就会通过,若是自己服务器生成的证书,这里是不会通过的。

    //AFSSLPinningModeCertificate 这个模式表示用证书绑定方式验证证书,需要客户端保存有服务端的证书拷贝,这里验证分两步,第一步验证证书的域名/有效期等信息,第二步是对比服务端返回的证书跟客户端返回的是否一致。

    //AFSSLPinningModePublicKey 这个模式同样是用证书绑定方式验证,客户端要有服务端的证书拷贝,只是验证时只验证证书里的公钥,不验证证书的有效期等信息。只要公钥是正确的,就能保证通信不会被窃听,因为中间人没有私钥,无法解开通过公钥加密的数据。

    securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

//是否允许访问无效或者过期的证书的服务器

    securityPolicy.allowInvalidCertificates = YES;

   //是否开启域名校验

    securityPolicy.validatesDomainName=NO;

    manager.securityPolicy= securityPolicy;

参考链接 :

https://www.jianshu.com/p/120150f78153

https://www.jianshu.com/p/6b9c8bd5005a

https://www.jianshu.com/p/4102b817ff2f

你可能感兴趣的:(网站 ssl自建证书)