CA数字证书构成及验证过程及openssl生成证书

CA数字证书的构成与生成过程

网站信息+网站公钥 ==== hash算法 == 》 摘要 ===== CA私钥加密 ====== 》数字签名
网站公钥+网站信息+数字签名========== 构成 ===========》数字证书

客户端B访问服务端A证书校验过程

Client B======== 访问 ===========》服务端A(返回给B自己的数字证书)
Client B: 
	1)判别证书有效性,证书有效期,证书颁发机构,
	证书是否被吊销(需连通CA校验CRL,CRL有效期,超过有效期浏览器或者服务器会向CA机构连接获取新的CRL)等;
	2)根据证书找到对应CA公钥(浏览器保有公钥),解密数字签名获取网站信息网站公钥的hash摘要;
	利用相同的hash算法对网站信息网站公钥生成摘要;
	两个摘要比较,判别网站信息以及网站公钥是否被篡改;
	3)生成随机字符串X,利用A的公钥对X进行加密,并传递给服务端A,服务端A利用私钥对数据进行解密获取X;
	4)B与A之间通过X利用对称加密算法对传递数据进行加密与解密。

利用openssl生成证书文件

1)创建密钥
使用openssl工具生成一个RSA私钥
openssl genrsa -des3 -out server.key 4096
注意:生成私钥,需要提供一个至少4位,最多1023位的密码。

2)生成CSR(证书签名请求)
openssl req -new -key server.key -out server.csr
说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。
其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。
可以将证书发送给证书颁发机构(CA),CA验证过请求者的身份之后,会出具签名证书,需要花钱。
另外,如果只是内部或者测试需求,也可以使用OpenSSL实现自签名。

3)生成自签名证书
openssl x509 -req -days 7300 -in server.csr -signkey server.key -out server.crt

参考

[1]. https://github.com/wangmeijian/blog/blob/master/docs/12.md
[2]. https://zhuanlan.zhihu.com/p/43789231?utm_source=wechat_session&utm_medium=social&s_s_i=0uFccAzO%2FGkfyOjSkPXVIi7yaG1JmRgR7AeupvnmRNQ%3D&s_r=1#showWechatShareTip

猜你喜欢

转载自blog.csdn.net/shy871/article/details/117557582
今日推荐