HTTPS应用层协议-CA签名与证书
HTTPS应用层协议-CA签名与证书
引入证书
CA 认证
服务端在使用 HTTPS 前,需要向 CA 机构申领一份数字证书,数字证书里含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书里获取公钥就行了,证书就如身份证,证明服务端公钥的权威性
这个 证书 可以理解成是一个结构化的字符串, 里面包含了以下信息:
• 证书发布机构
• 证书有效期
• 公钥
• 证书所有者
• 签名
• …
需要注意的是:申请证书的时候,需要在特定平台生成查,会同时生成一对⼉密钥对⼉,即公钥和私钥。这对密钥对⼉就是用来在网络通信中进行明文加密以及数字签名的。
其中公钥会随着 CSR 文件,一起发给 CA 进行权威认证,私钥服务端自己保留,用来后续进行通信(其实主要就是用来交换对称秘钥)
理解数据签名
签名的形成是基于非对称加密算法的,注意,⽬前暂时和 https 没有关系,不要和https 中的公钥私钥搞混了
当服务端申请 CA 证书的时候,CA 机构会对该服务端进行审核,并专⻔为该网站形成
数字签名,过程如下:
-
CA 机构拥有非对称加密的私钥 A 和公钥 A’
-
CA 机构对服务端申请的证书明文数据进行 hash,形成数据摘要
-
然后对数据摘要用 CA 私钥 A’加密,得到数字签名 S服务端申请的证书明文和数字签名 S 共同组成了数字证书,这样一份数字证书就可以颁发给服务端了