HTTPS SSL认证 CA 数字证书 数字签名 一文扫盲 原理概述
2017-09-02编辑
跟苹果打交道的开发者都会接触到 证书、签名、HTTPS等等东西,做了这么多年iOS开发竟然还不明白个中关系,下面我们来说一下它们是如何搞在一起的。
讲解之前我们首先要知道公钥、私钥、非对称加密的概念,不知道的可以百度一下。
概念解释
数字证书:数字证书是由CA颁发的,包含有申请者的公钥及申请者的其它信息
CA(Certificate Authority):证书认证机构,是PKI的核心。负责颁发证书、认证证书、管理已颁发证书的机关。根CA下面还有从CA(子CA,中级CA)。
数字签名:发送方用其私钥对原文的摘要进行加密后生成,更加详细的分析 数字签名是什么 和 数字签名原理
HTTPS:HTTP的安全版。即在HTTP下加入SSL层
SSL:是为网络通信提供安全及数据完整性的一种安全协议
他们的关系:客户端&服务端通过CA或其子机构申请数字证书,用于HTTPS的加密通信。客户端向服务器发送SSL连接请求,服务器返回自己的数字证书公钥PKI,客户端在收到公钥后,会对其进行验证,看是否是自己信任的CA机构所颁发,验证OK后双方即可开始通信。不过这仅是客户端对服务器的单向认证,也是应用最广泛的认证方式,因为用户千千万,服务器对用户是公开的,谁都可以来访问。如果要使用双向认证的方式即加入服务端对客户端的认证,就要求客户端发送自己的数字证书给服务器,服务器也对证书进行校验。
申请数字证书
要让我们的客户端/服务器支持Https协议,首先要申请数字证书,有2种途径
- 从证书颁发机构申请(需要RMB)
- 自签CA(免费,但不受浏览器信任)
申请流程
- 生成一对密钥
- 用公钥和用户基本信息生成证书请求csr (很多工具可一步生成私钥和csr)
- 从颁发机构申请证书
- 证书机构颁发pem或cer证书
参考
http://www.cnblogs.com/guogangj/p/4118605.html
来源:https://www.cnblogs.com/ciml/p/7464815.html