iOS配置HTTPS

引言

所有iOS的开发者都应该知道,2016年以来苹果在不断地收紧对于HTTP网络连接的限制,强力推行全部使用HTTPS进行网络连接。之前还能有手段能绕过这个问题,而到了2017年1月1日,将要求所有App必须使用HTTPS。所以iOS开发者们不得不被逼着上HTTPS,但是这似乎也带来了一个好处,后面再说。

HTTPS

先说说HTTPS是什么。

大家以前用的都是HTTP协议进行网络连接,用的太多了以致很多人甚至不会注意到它。但是用HTTP也有一些问题:

  • 通信内容使用的是明文传输,就可能会被窃听。
  • 没有对通信方的身份进行验证,就可能被伪造身份。
  • 无法证明报文的完整性,就可能被篡改内容。

而HTTPS就是为了防止以上问题而出现的:

HTTP + 加密 + 认证 + 完整性保护 = HTTPS

需要注意的是,HTTPS并不是一种新协议,只是HTTP通信接口部分使用SSL和TLS协议代替而已。通常HTTP直接和TCP通信,当使用SSL时,就演变成先和SSL通信,再由SSL和TCP通信了。

怎么实现加密的呢?通常我们可以直接使用同一个密钥在客户端和服务端进行加解密,但是如果这个密钥泄露了,就无法到达加密的目的了。还有一种加密方式是非对称性的公开密钥加密,有一个公钥和一个私钥,公钥,公钥是公开的,私钥是自己保存的,这样就可以实现彻底加密了。但是这种方式比较耗时,因此HTTPS的做法是:建立连接时先用耗时的非对称性公开密钥进行通信,将后续要使用的共享密钥进行传输,这样密钥就安全地传输了,之后再使用比较高效的共享密钥加密方式,使用秘密传输的密钥进行加解密。

然而公钥依然存在问题,可能会被替换或者别的情况,因此出现了一些数字证书认证机构颁发的公钥,也就是数字证书。遗憾的是,这种证书往往都需要缴纳费用来使用,因此很多系统都依然使用自己生成的证书来进行通信,我们使用浏览器时有时在访问https网站时看到绿色的锁,就说明是正规的数字证书认证机构颁发的证书,如果是自生成的就是红色的锁,这时浏览器也会提醒你网站可能是不安全的。比较著名的例子就是12306。

使用正规机构颁发的证书还有一个好处就是,这些证书往往已经存在于浏览器、iOS、Android中了, 也就是说如果使用这些证书,浏览器、iOS、Android都可以自动识别,不需要做任何配置。但如果使用自生成的证书,则需要下载安装证书,或者在App工程中配置自生成的证书文件。带来的后果就是用户体验的不足以及可能的应用商店审核被拒。

关于以上内容,有一本书可以推荐一下,写的简明易懂:《图解HTTP》

iOS配置HTTPS

正规证书

上面说了,如果是正规的数字证书认证机构颁发的证书,就不需要进行任何配置,记得将url前面加上https即可正常访问,达到加密以及通过审核的目的。但是缺点是要钱,而且费用不低。

但是!好消息!好消息!好消息!!!

阿里云和腾讯云现在提供免费的正规证书使用了!

腾讯云提供的没用不清楚,但是阿里

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值