openssl证书制作详细教程
自签名证书及验证
模拟证书涉及的角色
- 创建证书目录
mkdir ~/certs
cd ~/certs
- 认证机构、网站、浏览器/用户
mkdir root web user
机构自签名证书生成和发布
- 生成私钥
cd root
openssl genrsa -des3 -out rootCA.key 2048
- 用私钥生成自签证书
openssl req -x509 -new -nodes -key rootCA.key -out rootCA.cert
- 发布证书
cp rootCA.cert ../web ../user
模拟证书发布到用户和网站的过程
给网站签署证书
由网站生成证书请求
- 网站生成私钥
cd ../web
openssl genrsa -des3 -out web.org.key 2048
- 去除私钥密码
openssl rsa -in web.org.key -out web.key
- 生成证书签名请求
openssl req -new -key web.key -out web.csr
- 请求证书发给机构
cp web.csr ../root
机构签署证书
- 签署
cd ../root
openssl x509 -req -days 365 -in web.csr -CAkey rootCA.key -CA rootCA.cert -CAcreateserial -out web.crt
- 签署后的证书 web.crt 发回给网站
cp web.crt ../web
网站将证书挂到https服务器
这一步请移步参考各https容器配置
用户访问web网站
- 模拟用户从网站下载证书
cd ../user
cp ../web/web.crt .
- 验证网站证书的合法性
openssl verify -CAfile rootCA.cert -ca-bundle web.crt
rootCA.cert是机构发布,并得到用户得到信任的根证书,用此证书验证web.crt的合法性。