证书颁发机构(CA, Certificate Authority)是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
(当然不是所有的申请流程都如下所述,但原理都是一样的)
我们需要使用一个 openssl 软件,在这个软件中填写你申请所需的基本信息,如国家、公司、域名、邮箱、非对称算法等等。让后我们会得到两个文本文件。(xxx表示你申请的域名)
xxx.csr
这是需要发给CA机构申请证书用的文件
xxx.key
这是服务器非对称用的私钥
.csr 文件包含什么?
该文件解码后可以看到包含三部分信息:
解释 签名
签名的过程:将1、2两部分信息进行 sha256 散列得到 hash 值,然后通过RSA算法对hash值进行加密,密钥为上面提到的私钥。
签名的作用:提供给CA校验该csr文件的有效性。CA收到csr后,使用公钥解密,然后也将1、2部分信息进行hash,与解密的数据对比,相同则说明数据没有被篡改过。
为什么要先hash再加密,直接加密不行吗?
hash是一种摘要算法,元数据可能很大,直接对非常大的数据加密效率太低,密文也会很大,因此先对要加密的数据进行hash获取它的摘要信息,有效性是一样的。
CA 收到申请者的CSR文件后,进行审核,通过后就会下发证书文件。
发回的证书可能包含两个文件:
申请域名的证书
证书链(包含多个节点,每个节点都是一份证书)
通常是.pem或.crt后缀的文本文件。
每个证书的内容主要也包含三部分:
通常一个证书链有多个证书节点,这里我们拿有3个节点的链举例:
证书链是环环相扣,由根节点签发中间节点,中间节点签发域名证书。
具体流程可看我的博客《抓包观察TSL1.2握手过程》
原文:https://www.cnblogs.com/cpcpp/p/15228738.html