Moya https配置方法

准备

iOS做https适配时对服务器是有一定要求的,服务端必须要是一个符合ATS(App Transport Security)要求的HTTPS。简单说要满足以下几个要求:

1.Transport Layer Security协议版本要求TLS1.2以上

2.服务的Ciphers配置要求支持Forward Secrecy等

3.证书签名算法符合ATS要求等

Moya对应版本

Moya版本号(10.0.x);Alamofire版本号:4.7.x

实现方法

1、默认非HTTPS实现方法

默认情况下定义Manager:

MoyaProvider<MultiTarget>.defaultAlamofireManager()

该方法不需要做任何处理,Moya默认已经实现

2、HTTPS免证书实现方法(校验证书,可以抓包):

代码:

let manager: Manager = MoyaProvider<MultiTarget>.defaultAlamofireManager()

manager.delegate.sessionDidReceiveChallenge = {

session,challenge in

return    (URLSession.AuthChallengeDisposition.useCredential,URLCredential(trust:challenge.protectionSpace.serverTrust!))

}

注:需要导入:import Alamofire

3、HTTPS+证书实现方法(校验证书,不可以抓包)

在实现本方法前,首先需要服务器端提供“*.crt”证书,然后进入证书所在的路径,控制台执行以下命令:

openssl x509 -in *.crt -out *.cer -outform der

得到cer类型证书后,双击,导入电脑(有可能不需要导入电脑)。

把转换好的cer文件拖动到工程中。

上代码:

let configuration = URLSessionConfiguration.default

configuration.httpAdditionalHeaders = Manager.defaultHTTPHeaders

let path: String = Bundle.main.path(forResource: "xxx", ofType: "cer") ?? ""

let certificationData = try? Data(contentsOf: URL(fileURLWithPath: path)) as CFData

let certificate = SecCertificateCreateWithData(nil, certificationData!)

let certificates: [SecCertificate] = [certificate!]

let policies: [String: ServerTrustPolicy] = ["domain": ServerTrustPolicy.pinCertificates(certificates: certificates, validateCertificateChain: true, validateHost: true)]

let manager = Manager(configuration: configuration, serverTrustPolicyManager: ServerTrustPolicyManager(policies: policies))

最后把manager当参数传递给MoyaProvider

例如:

MoyaProvider<MultiTarget>(endpointClosure: endpoint,

requestClosure: requestEndpoint,

stubClosure: stubClosure,

manager: manager,

plugins: plugins)

原文地址:https://www.cnblogs.com/wenxp2006/p/9626730.html

时间: 2024-10-10 07:30:24

Moya https配置方法的相关文章

haproxy代理https配置方法【转】

记得在之前的一篇文章中介绍了nginx反向代理https的方法,今天这里介绍下haproxy代理https的方法: haproxy代理https有两种方式:1)haproxy服务器本身提供ssl证书,后面的web服务器走正常的http 2)haproxy服务器本身只提供代理,后面的web服务器走https(配置ssl证书) 第一种方式:haproxy服务器本身提供ssl证书 注意:需要编译haproxy的时候支持ssl编译参数: #make TARGET=linux26 USE_OPENSSL=

haproxy代理https配置方法

记得在之前的一篇文章中介绍了nginx反向代理https的方法,今天这里介绍下haproxy代理https的方法: haproxy代理https有两种方式:1)haproxy服务器本身提供ssl证书,后面的web服务器走正常的http 2)haproxy服务器本身只提供代理,后面的web服务器走https(配置ssl证书) 第一种方式:haproxy服务器本身提供ssl证书 注意:需要编译haproxy的时候支持ssl编译参数: #make TARGET=linux26 USE_OPENSSL=

企业网站的SSL签证生产测试以及https配置方法

这一次要做企业网站怎么获得安全的数字证书,没有数字证书的话,在浏览器访问网站的时候会跳出不安全界面,而且钓鱼网站也会让用户进去个假网站,一般企业可以去阿里云去买数字证书,买好之后浏览器便会加载这个数字证书,用户便能安全访问.若出现钓鱼网站,浏览器会检测出来,提醒用户这是个钓鱼网站,不要进入.接下来做一个测试环境的测试,在测试环境下自己可以CA机构,颁发CA证书,操作步骤如下 环境准备:源码安装好了nginx,且已经设置好了nginxctl的控制命令,不知道的可以看之前的文章,做一个脚本,就不需要

Nginx自签ssl证书创建及配置方法

场景: Nginx使用自签ssl证书实现https连接. 方法: 第一步:使用OpenSSL创建证书 #建立服务器私钥(过程需要输入密码,请记住这个密码)生成RSA密钥 >openssl genrsa -des3 -out server.key 1024 #生成一个证书请求     >openssl req -new -key server.key -out server.csr #需要依次输入国家,地区,组织,email.最重要的是有一个common name,可以写你的名字或者域名.如果为

docker网络配置方法总结

docker启动时,会在宿主主机上创建一个名为docker0的虚拟网络接口,默认选择172.17.42.1/16,一个16位的子网掩码给容器提供了65534个IP地址.docker0只是一个在绑定到这上面的其他网卡间自动转发数据包的虚拟以太网桥,它可以使容器和主机相互通信,容器与容器间通信.问题是,如何让位于不同主机上的docker容器可以通信.如何有效配置docker网络目前来说还是一个较复杂的工作,因而也涌现了很多的开源项目来解决这个问题,如flannel.Kubernetes.weave.

FCKEditor在jsp页面中的配置方法

大家在使用博客园或者是在网站上面发表一些东西的时候,往往会发现,输入文字的不是一个简单的文本框,而是一个类似于word的在线编辑环境.这个插件叫FCKEditor,使用这个插件要进行一定程度的配置,下面我把配置方法给大家分享一下. 总共要下载两个文件,第一个文件的下载地址是 https://sourceforge.net/projects/fckeditor/files/FCKeditor/2.6.8/打开这个页面后大家会看到 这时页面中有两个可下载项,大家点击第二个可下载项FCKeditor_

MySQL-5.6.24等免安装版配置方法

MySQL-5.6.24等免安装版配置方法 1. 下载MySQL-5.6.24 (直接百度搜索mysql下载即可) 2. 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是:"C:\Java\mysql"将解压目录下默认文件 my-default.ini 拷贝一份,改名 my.ini复制下面的配置信息到 my.ini 保存#如果没有my-default.ini,可自己新建my.ini或者从其他地方中获取 [mysqld] #绑定IPv4和3306端口bi

jquery banner 轮播配置方法

1 概述 Banner可以作为网站页面的横幅广告,也可以作为游行活动时用的旗帜,还可以是报纸杂志上的大标题.Banner主要体现中心意旨,形象鲜明表达最主要的情感思想或宣传中心.在以往很多项目中主要体现在首页.登录页中对客户的提供的图片进行展示,本文档主要介绍基本的使用方式和结合我们aeai_portal产品首页的展示配置改造方式. 2 样例介绍 样例结构如下图,images文件夹.js文件夹和indexhtml文件. image:样例中使用到的图片: js: jquery-1.10.2.min

(转)常见的HTTPS攻击方法

0x00 背景 研究常见的https攻击方法 Beast crime breach,并针对https的特性提出一些安全部署https的建议. 针对于HTTPS的攻击,多存在于中间人攻击的环境中,主要是针对于HTTPS所使用的压缩算法和CBC加密模式,进行side-channel-attack.这几类攻击的前置条件都比较苛刻,且都需要受害主机提交很多次请求来收集破译关键数据的足够信息. 常见的攻击方法,主要有,BEAST Lucky-13 RC4 Biases CRIME TIME BREACH等