自签名证书及验证
模拟证书涉及的角色
创建证书目录
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服务器
cd ../user
cp ../web/web.crt .
验证网站证书的合法性
openssl verify -CAfile rootCA.cert -ca-bundle web.crt
rootCA.cert是机构发布,并得到用户得到信任的根证书,用此证书验证web.crt的合法性。
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的合法性。