美文网首页
https原理与证书验证

https原理与证书验证

作者: gzgogo | 来源:发表于2018-04-28 11:49 被阅读314次

https工作原理

image

浏览器验证

web端分两种情况,一是在地址栏输入https地址,这种情况浏览器会帮忙做证书的验证;另一种情况是通过ajax库请求https接口,这种情况ajax会负责证书的验证(个人理解,不对请纠正)。
无论哪种方式,请求发出后,服务端会返回自己的证书,客户端会从6个方面验证证书的有效性和合法性:

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

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

ios验证

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

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

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

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

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

ios验证参考iOS 中对 HTTPS 证书链的验证

参考

图解HTTPS
浏览器如何验证HTTPS证书的合法性?
iOS 中对 HTTPS 证书链的验证
SSL证书验证过程:浏览器如何验证SSL证书?
【iOS开发】Https 原理与验证过程

相关文章

  • https原理与证书验证

    https工作原理 浏览器验证 web端分两种情况,一是在地址栏输入https地址,这种情况浏览器会帮忙做证书的验...

  • 【HTTP】Https 原理与验证过程

    Https 原理与验证过程 一、参考文章 HTTPS 基础OpenSSL 与 SSL 数字证书概念贴 iOS 中对...

  • HTTPS实现原理

    参考自文章。 HTTPS实现原理 HTTPS分为证书验证和数据传输阶段: 证书验证阶段(非对称加密,公钥私钥) 1...

  • HTTPS原理及iOS证书验证

    HTTPS的概述 说到https协议,我们得先了解下http协(Hyper Text Transfer Proto...

  • Https 数字证书验证原理

    一、Https为什么安全 讲到https安全,那就看http为什么不安全。1、明文传输2、信息被监听和篡改。3、无...

  • https证书验证

    废话开篇:https 证书是什么?如何进行认证呢?带着这些疑问来简单的实现一下验证过程 简单的了解一下 https...

  • HTTPS的数字证书验证原理

    https://blog.csdn.net/liuxingrong666/article/details/8386...

  • HTTPS安全的一些tk

    参考连接: 网络数据传输安全及SSH与HTTPS工作原理数字证书原理,公钥私钥加密原理 Https协议详解数字证书...

  • iOS 美团面试整理

    1, HTTP和HTTPS 区别,HTTPS证书验证原理 区别 1,HTTP 明文传输,数据都是未加密的,安全性较...

  • Java基础知识整理2——网络篇

    一、http与https的区别: https = http + ssl +加密算法+证书验证 ht...

网友评论

      本文标题:https原理与证书验证

      本文链接:https://www.haomeiwen.com/subject/dgfglftx.html