热门搜索 :
考研考公
您的当前位置:首页正文

https原理与证书验证

来源:东饰资讯网

https工作原理

image

浏览器验证

  • 检查SSL 证书是否是由浏览器中“受信任的根证书颁发机构”颁发
  • 检查SSL证书中的证书吊销列表,检查证书是否被证书颁发机构吊销
  • 检查此SSL证书是否过期
  • 检查部署此SSL证书的网站的域名是否与证书中的域名一致
  • IE7浏览器会到欺诈网站数据库查询此网站是否已经被列入欺诈网站黑名单

浏览器需经过以上5个方面的检查后,才会在页面显示安全锁标志,正常显示部署了SSL证书的加密页面。

ios验证

由系统和网络请求库帮忙做默认验证,也可以自定义验证逻辑。

ios验证时有一点需要注意:当证书是自签名证书时,系统不存在该证书的根证书,系统无法验证证书链是否受信任,这时需要app自行验证,大概分如下两步:

  1. 将服务器的公钥证书拖到Xcode中
  2. 修改验证模式

原理:
简单来说,就是你本可以修改AFN这个设置来允许客户端接收服务器的任何证书,但是这么做有个问题,就是你无法验证证书是否是你的服务器后端的证书,给中间人攻击,即通过重定向路由来分析伪造你的服务器端打开了大门。

解决方法:
AFNetworking是允许内嵌证书的,通过内嵌证书,AFNetworking就通过比对服务器端证书、内嵌的证书、站点域名是否一致来验证连接的服务器是否正确。由于CA证书验证是通过站点域名进行验证的,如果你的服务器后端有绑定的域名,这是最方便的。将你的服务器端证书,如果是pem格式的,用下面的命令转成cer格式。

参考

Top