使用Moya库,进行https证书校验

查了很多网上的文章,对moya的https证书校验基本都是略,要么就是16/17年的代码,但是运行的时候找到证书,转data格式的时候报错,崩溃;
Alamofire 5.0之后,对于ssl证书认证相关代码有修改。
pod 'Moya/RxSwift', '~> 14.0'
不费话,下面直接看代码吧,希望对你们有帮助;

//MARK: 设置ssl
let session : Session = {
   //证书数据
   func certificate() -> SecCertificate? {
       let filePath = Bundle.main.path(forResource: "存在Xcode中证书的文件名", ofType: "cer")
       if filePath == nil {
           return nil
       }
       let data = try! Data(contentsOf: URL(fileURLWithPath: filePath ?? ""))
       let certificate = SecCertificateCreateWithData(nil, data as CFData)!
       return certificate
   }
   
   guard let certificate = certificate() else {
       return Session()
   }
   
   let trusPolicy = PinnedCertificatesTrustEvaluator(certificates: [certificate], acceptSelfSignedCertificates: false, performDefaultValidation: true, validateHost: true)
   let trustManager = ServerTrustManager(evaluators: ["你证书的域名,比如www.baidu.com或者baidu.com" : trusPolicy])
   let configuration = URLSessionConfiguration.af.default
   return Session(configuration: configuration, serverTrustManager: trustManager)
}()
//把session当参数传进去就行了
let kProvider = MoyaProvider<HXNetworkAPI>(endpointClosure: myEndpointClosure, requestClosure: requestClosure, session: session, plugins: [networkActivityPlugin], trackInflights: false)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文来自乌云 随着安全的普及,https通信应用越发广泛,但是由于对https不熟悉导致开发人员频繁错误的使用ht...
    常胖阅读 2,690评论 1 18
  • 海芬/文 乘飞吉祥云 浏览天无穷 俯视苍茫地 笑看凡间荣 中曼飞彩虹 欲望瑶池中
    海语天籁阅读 520评论 1 2
  • 今天早上迟到了,睡的很沉,仿佛进入了某种境界,听不到闹钟的声音,好吧,就是早起不成功 今天好像没做什么工作,没有平...
    七个偶遇人阅读 157评论 0 0
  • 一个果农也好,一个园丁也好,能够耐心地给自己的果树,给自己的植物除草浇灌,施肥灭虫,不仅仅是因为耐心,还因为期待着...
    清风徐来_徐丽丽阅读 184评论 0 2
  • 在第一环节中,我起先不知怎么做,我的焦点在别人身上了,不在自己身上。司文老师在我身边时,我又很想引起她的注意,可偏...
    多多少少7阅读 156评论 0 0