0
点赞
收藏
分享

微信扫一扫

ios 配置https

夏侯居坤叶叔尘 2021-09-29 阅读 51
iOS OC开发

一、生成cer证书

1.使用openssl工具,操作步骤如下(推荐使用):
(1).终端输入openssl进入工具。
(2).`先转p12证书`
pkcs12 -export -out test.p12 -in test.pem -inkey test.key  
(3).`转成crt证书` 
pkcs12 -in test.p12 -out test.crt -nokeys -clcerts   
(4).`转成cer证书`
x509 -inform pem -in test.crt -outform der -out  test.cer 
2.双击.pem文件然后在电脑钥匙串中找到证书然后直接导出.cer证书。

二、AFNetworking中配置

_sessionManager = [[AFHTTPSessionManager manager] initWithBaseURL:[NSURL URLWithString:ServerPath]];
    // 设置请求的超时时间
    _sessionManager.requestSerializer.timeoutInterval = 30.f;
    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"cer"];//证书的路径   
 NSData *cerData = [NSData dataWithContentsOfFile:cerPath];
    // 使用证书验证模式
    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
    // 如果需要验证自建证书(无效证书),需要设置为YES
    securityPolicy.allowInvalidCertificates = YES;
    // 是否需要验证域名,默认为YES;
    securityPolicy.validatesDomainName = validatesDomainName;
    securityPolicy.pinnedCertificates = [[NSSet alloc] initWithObjects:cerData, nil];
    [_sessionManager setSecurityPolicy:securityPolicy];

三、注意事项

AFHTTPSessionManager注意一定要 initWithBaseURL 添加baseurl,直接[AFHTTPSessionManager manager]会报错:
A security policy configured with `AFSSLPinningModeCertificate` can only be applied on a manager with a secure base URL (i.e. https)。闪退

四、如果前后端都配置好了https,那么ios端需要在info.plist中配置一下以几项配置:

1.删除以下配置。
NSAllowsArbitraryLoads #如果只是支持https的话把这个配置删除,
  #但是如果没有配置好的话就先不要删除否则会崩溃的。

举报

相关推荐

https配置

nginx 配置https

nginx配置https

Nginx配置HTTPS

0 条评论