AFNetworking 3.0 https请求忽略证书验证

By | 08月05日
Advertisement

1、修改AFNetworking中修改源码,在AFSecurityPolicy.m注释掉这几句

- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust
                  forDomain:(NSString *)domain
{
//    if (domain && self.allowInvalidCertificates && self.validatesDomainName && (self.SSLPinningMode == GMAFSSLPinningModeNone || [self.pinnedCertificates count] == 0)) {
//        // https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/NetworkingTopics/Articles/OverridingSSLChainValidationCorrectly.html
//        //  According to the docs, you should only trust your provided certs for evaluation.
//        //  Pinned certificates are added to the trust. Without pinned certificates,
//        //  there is nothing to evaluate against.
//        //
//        //  From Apple Docs:
//        //          "Do not implicitly trust self-signed certificates as anchors (kSecTrustOptionImplicitAnchors).
//        //           Instead, add your own (self-signed) CA certificate to the list of trusted anchors."
//        NSLog(@"In order to validate a domain name for self signed certificates, you MUST use pinning.");
//        return NO;
//    }

2、在使用的时候添加

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
            manager.responseSerializer = [AFHTTPResponseSerializer serializer];
            manager.requestSerializer = [AFJSONRequestSerializer serializer];

            AFSecurityPolicy *securityPolicy = [AFSecurityPolicy defaultPolicy];
            // allowInvalidCertificates 是否允许无效证书(也就是自建的证书),默认为NO
            // 如果是需要验证自建证书,需要设置为YES
            securityPolicy.allowInvalidCertificates = YES;
            manager.securityPolicy = securityPolicy;

Similar Posts:

  • Https请求忽略证书验证最新实现

    最近工作中需要和一个第三方公司进行https交互请求,但是对方的证书有一些问题,所以在发送请求的时候需要忽略证书验证.百度之后,发现已经有很多这方面的介绍,不过在使用其代码的时候总会有一些类不推荐使用了.下面是参考网上的常见方面并结合最新的官方API实现的一个最新方法(使用的主要jar包括httpclient-4.5.1.jar和httpcore-4.4.3.jar). public static List doPostByClient(String url, Map<?, ?> postDa

  • HttpClient 如何忽略证书验证访问https - ALLOW_ALL_HOSTNAME_VERIFIER (二)

    HttpClient 如何忽略证书验证访问https - ALLOW_ALL_HOSTNAME_VERIFIER(二) /** * @Title: getNewHttpClient * @Description: Methods Description * @param @return * @return HttpClient * @throws */ private HttpClient getNewHttpClient() { try { KeyStore trustStore = KeyS

  • 对于AFNetworking HTTP转HTTPS请求证书问题

    iOS开发:对于AFNetworking HTTP转HTTPS请求证书问题 字数991 阅读3830 评论14 喜欢16 公司之前的请求都是HTTP的,现在要把HTTP改成HTTPS,如果我们只是单单的把http改成https,在进行网络请求的时候,会报下面的一大堆错误,大概意思也就是说证书无效,影响请求的安全性: Domain=NSURLErrorDomain Code=-1202 "此服务器的证书无效.您可能正在连接到一个伪装成"m.dks.com"的服务器,这会威胁到您

  • 三步解决fiddler升级后https无法通过证书验证问题

    三步解决fiddler升级后https无法通过证书验证问题 1. 去掉 https 捕获选项 去掉勾选 2. 删除ie下的fiddler证书 将证书下的所有DO_NOT_TRUST_FIDDER证书都删掉 3. 配置https捕获选项 勾选弹出下图 选yes 选yes 再试就OK了 --特殊浏览器处理:firefox 一般装fiddler,如果本地有火狐就会启用fiddlerhook,当然新版火狐升级了安全设置,禁用了此插件,可通过 about:config 中 xpinstall.signat

  • Nodejs后台发送https请求验证证书

    项目中用到了很多第三方的库,这些库在生产环境使用的时候的都会发送https的请求出去,但是再发送请求的时候nodejs会验证证书,没有证书的时候都会无法通过,这里可以修改代码进行修改这个问题, 1.在发送https请求的时候添加如下代码: rejectUnauthorized: false, 如图,某个库: 2.还有就是全局设置. 启动程序的时候设置: process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

  • java在访问https资源时,忽略证书信任问题

    java程序在访问https资源时,出现报错 sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 这本质上,是java在访问https资源时的证书信任问题.如何解决这个问题

  • iOS 用自签名证书实现 HTTPS 请求的原理实例讲解

    在16年的WWDC中,Apple已表示将从2017年1月1日起,所有新提交的App必须强制性应用HTTPS协议来进行网络请求.默认情况下非HTTPS的网络访问是禁止的并且不能再通过简单粗暴的向Info.plist中添加NSAllowsArbitraryLoads设置绕过ATS(App Transport Security)的限制(否则须在应用审核时进行说明并很可能会被拒).所以还未进行相应配置的公司需要尽快将升级为HTTPS的事项提上进程了. 本文将简述HTTPS及配置数字证书的原理并以配置实例

  • 轻松把玩HttpClient之配置ssl,采用绕过证书验证实现https

    上篇文章说道httpclient不能直接访问https的资源,这次就来模拟一下环境,然后配置https测试一下.在前面的文章中,分享了一篇自己生成并在tomcat中配置ssl的文章<Tomcat配置SSL>,大家可以据此来在本地配置https.我已经配置好了,效果是这样滴: 可以看到已经信任该证书(显示浅绿色小锁),浏览器可以正常访问.现在我们用代码测试一下: public static void main(String[] args) throws ParseException, IOExc

  • iOS https自签证书,用af时请求超时

    iOS https请求,用的自签名证书,用af时请求超时 有这方面小demo? --cut-- leveychen在2015-12-18 18:25:25回答到: 自制SSL证书无法通过IOS的认证的,直接就GG了.根本没有请求成功. 免费是沃通也不行,亲测RapidSSL是可以的,一年几十块. marcoe在1970-01-01 15:28:24回答到: 沃通的SSL证书可以啊,可能是你的证书链没有配置正确吧.可以参考这里https://app.cmcre.cn/,和https://app.w

  • AFNetworking 3.0封装post请求body里面内容是空的

    迁移到AFNetworking 3.0,网上资料较少.发现封装post,body里面内容是空的,服务端收到的params为空. 自己研究了一个正确的写法.供大家参考. NSDictionary *param = [NSDictionarydictionaryWithObjectsAndKeys:@{@"agent":@"X-IOS",@"version":[[UIDevicecurrentDevice] systemVersion], _sman

Tags: