本文主要内容有四点:
1. 何谓证书 (ssl证书、数字证书)?
2. 数字证书在ssl连接中如何起作用?
3. 权威证书如何颁发?
4. 自签名证书如何生成?
- 证书
- PKI(Public Key Infrastructure)公钥基础设施,全面解决安全问题的基础结构(貌似是信息安全基础体系的意思)
- CA (certificate authority)证书认证中心,是负责发放和管理证书的第三方权威机构。
它负责管理PKI结构下的所有用户的证书,把用户的公钥和用户的其他信息捆绑在一起,在网上验证用户的身份
.它主要有5个功能:证书颁发、更新、查询、作废、归档
- 标准:提供数据语法和语义的共同约定。x.509是PKI中最重要的标准,它定义了公钥证书的基本结构。(可以说PKI是在X。509标准基础上发展起来的),另一个常用的标准是PKCS#12。
X.509维基百科 - 数字证书:
是网络上证明自己身份的文件,包含了公钥和其他相关信息(common name等),可以由权威机构颁发(在client端内置的根受信任机构列表中存在),也可以自己生成(需要client端安装相应的根证书才能被信任)。 - ssl证书是数字证书的一种,用于在web client和web server中建立一条ssl安全通道。
证书格式
- 版本 (Version)(V3)
- 序列号 (Serial Number)(01:65:CC:08:32:68:44:72:D3:8C:42:38:CE:D1:7C:0A)
- 证书签名算法 (PKCS #1 SHA-256 RSA 加密)
- 颁发者 (Issuer)(
CN = DigiCert SHA2 Secure Server CA O = DigiCert Inc C = US
) - 持有者 (Subject)(
CN = *.jianshu.com O = "Shanghai Bai Ji Information Technology Co,. Ltd" L = Shanghai C = CN
) - 持有者公钥信息 (Subject Public Key Info)
- 持有者公钥算法 (PKCS #1 RSA 加密)
- 持有者公钥
- 有效性 (Validity)
- 不早于 (2017年9月19日 8:00:00(2017年9月19日 0:00:00 GMT))
- 不晚于 (2018年9月24日 20:00:00(2018年9月24日 12:00:00 GMT))
- 扩展 (extentsion)
- ……
firefox的证书查看器看到的内容
- 数字证书在ssl传输过程中所起的作用
https连接建立过程中商定加密算法和传递加密密钥、向量
- client 向 server发送建立https 连接的请求,
提供client支持的对称加密、密钥交换算法、摘要算法
; - server 确定使用的加密算法组合,连同包含自己公钥的数字证书发送给client;
- client验证server的证书是否可信任,不信任则断开连接,信任则生成对称加密的密钥、加密初始化向量和hmac的密钥,使用商定的密钥交换算法和server的公钥进行加密,发送给server(ClientKeyExchange消息);
- server用自己才有的私钥解密消息得到对称加密的密钥、加密初始化向量和hmac的密钥,返回成功的结果给client 。(此时client和server建立了https连接并商定好了接下来加密消息的加密方式)
- 步骤3中 client验证server证书的过程
* ca颁发机构对证书中的公钥和信息生成摘要并使用自己统一的私钥进行加密,生成证书签名;
* server端将ca颁发给自己的证书发给client
* client端用统一的ca颁发机构的公钥(即ca根证书)对收到的数字证书签名解密得到摘要,按证书中的摘要算法计算摘要并比对,验证了此证书为权威机构颁发的证书,且与当前请求地址匹配。得到了目标server的公钥
- 权威证书如何签发?
- 权威机构颁发的证书
- 到证书颁发机构官网或阿里云这样的网站选择合适的证书并付款
- 进入配置 创建私钥对(生成csr、key文件)
- 填写域名信息(单域名 www.xxx.com;泛域名 *.xxx.com)
- 填写申请人信息(公司名称、网站/部门名称、地址信息(城市名称、省份名称)联系邮箱等)
- 验证域名所有权
- 验证通过 颁发证书
- 自签名证书如何生成?
可移步我的另一篇文章自签名证书如何生成?
[1]参考文章
网友评论