HTTPS SSL 详解之服务器数字证书

首先,我们得搞清楚什么是数字证书,有什么作用。  
数字证书是在维基百科上是这样描述的:为通信提供电子认证,用于网络身份识别。说白了就是网络中的身份证,一般用于服务器。

我们再来看看数字证书的结构(基于 x.509 证书标准):
1 证书格式版本号
2 证书序列号
3 证书签名算法
4 证书颁发者
5 证书有效期
6 对象的名称
7 对象的公开密钥
8 其它信息
9 证书颁发机构的数字签名 (对前面8项内容进行哈希散列形成固定摘要,加上颁发者私钥参数做参数,用证书签名算法最终形成签名)
可以做个比喻,数字证书就如现实生活中的身份证(用于证明持证人身份),CA 机构就是现实整的公安机关(颁发证件可信度高),而证书上的公钥信息就类似于身份证的照片,数字证书的签名就相当于身份证的盖印(证明是公安机关的)。

服务器申请数字证书的流程 :
1 服务器自己生成申请证书的证书请求和私钥,证书请求一般是 cer 文件,里面包含服务器公钥等信息。
2 服务器向证书认证机构(权威CA机构)递交证书请求。
3 CA 机构核对服务器的证书请求。(核对是物理过程,很严格)
4 CA 核对完毕,会给服务器颁发数字证书server.crt(物理过程)。证书包含公钥和 CA 签名等信息。
5 服务器使用数字证书

数字证书的验证流程
1 将证书除最后签名外的所有信息(如证书结构里的8项信息)进行哈希,生成摘要1.
2 对证书最后的数字签名,用证书的签名算法,加上证书颁发者的公钥,最后生成摘要2.(此处颁发者的公钥默认是浏览器内置的,证书最后的签名是CA签的,验证用的对应是CA的公钥)
3 对比摘要1和摘要2,若相等,则证明该数字证书是合法的机构颁发的,证书信息也是可信的

你可能感兴趣的:(Https)