Alamofire HTTPS自签名证书校验

本文档介绍了如何在iOS项目中使用Alamofire进行HTTPS网络请求,并解决自签名证书校验的问题。由于苹果ATS仅信任知名CA证书,因此需要在info.plist中配置,并实现证书校验方法。文中提供了证书校验的代码实现,适用于Alamofire 5.0版本。
摘要由CSDN通过智能技术生成

根据项目需求,需要进行HTTPS网络请求并添加证书校验过程,由于没有做过,前前后后研究了两个多星期,才通过校验,可以正常进行网络请求,不多说了直接上代码

  • 设置程序中的info.plist
    (由于我们使用的是自签名的证书,而苹果ATS(App Transport Security)只信任知名CA颁发的证书,所以在iOS9下即使是HTTPS请求还是会被ATS拦截。)
    (验证该域名是否通过ats认证 网上有很多,请自行搜索)
<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
	</dict>
  • 开始正式验证
	//MARK: https证书校验
    func setAlamofireHttps() {
        shareSessionManager.delegate.sessionDidReceiveChallenge = {(session: URLSession, challenge: URLAuthenticationChallenge) in
            let method = challenge.protectionSpace.authenticationMethod
            if method == NSURLAuthenticationMethodServerTrust {
                LJQPrint("服务端证书认证")
                return self.trustServerWithCer(challenge: challenge)
            }else if method == NSURLAuthenticationMethodClientCer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值