自己做的https证书 在iOS上请求https 报错 怎么能越过SSL证书验证

报错为 NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824)
还有这个错误 CFNetwork SSLHandshake failed (-9824)
代码如下

  NSURL *url = [NSURL URLWithString:@"https://booking.cn.fcm.travel/img/200049324/144799957714318319/20151120140610983315.png"];

UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];

UIImageView *image1 = [[UIImageView alloc] init];

image1.frame= CGRectMake(10, 10, 100, 100);

image1.image=image;

[self.view addSubview:image1];

下面的操作是不管用的
info.plist加上这一段,右键 info.plist -> open as -> source code
用代码加

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

回答:

买一个SSL证书。自定义的是不会通过的,参考万恶的12306.
目前沃通的免费SSL无法通过Android和IOS的认证。
用付费的吧,用最便宜的RapidSSL就行了。一年几十块。

回答:

图片描述

升级xcode7.1试试看,有个选项YES。。。。

回答:

AppDelegate.m

@implementation NSURLRequest(DataController)

+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host

{

return YES;

}

@end

如果是 XCODE 7 以上的版本需要 plist 需要加上

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

回答:

1.自签名证书不被信任,可以实现conection代理,忽略证书,实现比较麻烦
2.你的服务器,应该是设置了只支持https请求,可以设置同时支持两个协议

如果是自建证书,没有经过权威机构认证的证书,那么需要将NSAllowsArbitraryLoads设置为YES才能通过。NSAllowsArbitraryLoads为YES,以前的HTTP请求也能通过。->现在是没有http协议的请求

回答:

注意苹果会不定期更新受信CA厂商列表,最新的IOS11信任的CA证书厂商参考苹果官网通行:https://support.apple.com/zh-...。显然部分免费的SSL已经不受信任了,所以在未来开发时尽量避免寻求免费证书,避免苹果方面因证书问题给app带来的损失
参考DigiCert、Symantec、GeoTrust 、Thawte、Comodo、RapidSSL、Certum等多种品牌证书均在苹果的信任列表中,由低到高最低¥39元PositiveSSL和30天免费试用的RapidSSL,详情参考价目表:
https://www.infinisign.com/pr...

回答:

若若问楼主,这个问题解决了么?访问自建证书报SSL错误。

以上是 自己做的https证书 在iOS上请求https 报错 怎么能越过SSL证书验证 的全部内容, 来源链接: utcz.com/p/187598.html

回到顶部