iOS/OC:ATS、https、自签证书、域名

作者: 自律_自强_通达 | 来源:发表于2017-01-17 14:18 被阅读0次

      关于iOS 自制证书进行https协议请求,分享下我遇到的坑。

    先上AFN代码:

    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@“你的证书名称” ofType:@"cer"];

    NSData *cerData = [NSData dataWithContentsOfFile:cerPath];

    NSSet *cerSet = [NSSet setWithObjects:cerData, nil];

    AFSecurityPolicy *security = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

    [security setAllowInvalidCertificates:YES];

    security.validatesDomainName = NO;

    [security setPinnedCertificates:cerSet];

    “AFHTTPSessionManager实例”.securityPolicy = security;

    上面这个代码是对AFN实例的证书设置 , 其中:

    [security setAllowInvalidCertificates:YES];

    上面这行代码意义:允许不受信证书(自签证书)进行网络请求

    security.validatesDomainName = NO;

    上面这行代码意义:不去验证网址链接的域名是否是正确,(如果你的接口是域名而且还是自制证书不设置为NO默认就是YES 则会造成网络请求失败,AFN将取消请求造成ERROR)

    自此,https 请求的证书配置完毕,是否能通过就要依赖你的证书是否是可用有效的自制证书

    证书要求需要和你的后端同事确认

    1 苹果ATS要求:

    1️⃣TSL1.2 (以上都行)

    2️⃣SHA-256 (以上)加密

    3️⃣forward security (有人翻译为前向加密技术)

    4️⃣证书位数 2048 位以上

    证书符合这些要求的话, 

    设置成YES

    这样就OK了, 有不明白的可以底下留言,我知道的话在给你解答。

    相关文章

      网友评论

        本文标题:iOS/OC:ATS、https、自签证书、域名

        本文链接:https://www.haomeiwen.com/subject/bupmbttx.html