zoukankan      html  css  js  c++  java
  • 自签名配置HTTPS

    基于AFN3.0

    1、将后台提供的.cer文件文件保存至本地

    2、在封装的网络请求工具类中为AFN的AFSecurityPolicy属性赋值

    -(AFSecurityPolicy *)customSecurityPolicy
    {
        // 先导入证书,在这加证书,一般情况适用于单项认证
        // 证书的路径
        NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"app" ofType:@"cer"];
        
        NSData *cerData = [NSData dataWithContentsOfFile:cerPath];
        
        if (cerData == nil) {
            return nil;
        }
        NSSet *setData = [NSSet setWithObject:cerData];
        //AFSSLPinningModeCertificate 使用证书验证模式
        AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
        
        // allowInvalidCertificates 是否允许无效证书(也就是自建的证书),默认为NO
        // 如果是需要验证自建证书,需要设置为YES
        securityPolicy.allowInvalidCertificates = YES;
        
        // validatesDomainName 是否需要验证域名,默认为YES;
        // 假如证书的域名与你请求的域名不一致,需要把该项设置为NO;如设成NO的话,即服务器使用其他可信任机构颁发的证书,也可以建立连接,这个非常危险,建议打开。
        // 设置为NO,主要用于这种情况:客户端请求的事子域名,而证书上的是另外一个域名。因为SSL证书上的域名是独立的,假如证书上注册的域名是www.google.com,那么mail.google.com是无法验证通过的;当然有钱可以注册通配符的域名*.google.com,但这个还是比较贵的。
        // 如设置为NO,建议自己添加对应域名的校验逻辑。
        securityPolicy.validatesDomainName = NO;
        
        [securityPolicy setPinnedCertificates:setData];
        
        return securityPolicy;
    }

    3、在网络请求工具初始化时设置

    - (id)initWithBaseURL:(NSURL *)url {
        self = [super initWithBaseURL:url];
        if (!self) {
            return nil;
        }
    
        [self setSecurityPolicy:[self customSecurityPolicy]];
      
        return self;
    }
  • 相关阅读:
    IIS 您要访问的网页有问题,无法显示!
    windows系统添加删除用户命令!
    ASP跨域调用Webservices方法
    ASP 编码转换(乱码问题解决)
    Jquery控制滚动显示欢迎字幕v2
    iframe框架嵌套技巧(全屏,去双滚动条)
    ASP CDONTS.NEWMAIL组件发送电邮(附下载)
    ASP FORM表单提交判断
    使用js代码将HTML Table导出为Excel
    获得第二大的元素
  • 原文地址:https://www.cnblogs.com/QM80/p/8386912.html
Copyright © 2011-2022 走看看