openssl证书制作详细教程

自签名证书及验证

模拟证书涉及的角色

  1. 创建证书目录
mkdir ~/certs
cd ~/certs
  1. 认证机构、网站、浏览器/用户
    mkdir root web user

机构自签名证书生成和发布

  1. 生成私钥
    cd root
    openssl genrsa -des3 -out rootCA.key 2048
  2. 用私钥生成自签证书
    openssl req -x509 -new -nodes -key rootCA.key -out rootCA.cert
  3. 发布证书
    cp rootCA.cert ../web ../user
    模拟证书发布到用户和网站的过程

给网站签署证书

由网站生成证书请求

  1. 网站生成私钥
    cd ../web
    openssl genrsa -des3 -out web.org.key 2048
  2. 去除私钥密码
    openssl rsa -in web.org.key -out web.key
  3. 生成证书签名请求
    openssl req -new -key web.key -out web.csr
  4. 请求证书发给机构
    cp web.csr ../root

机构签署证书

  1. 签署
    cd ../root
    openssl x509 -req -days 365 -in web.csr -CAkey rootCA.key -CA rootCA.cert -CAcreateserial -out web.crt
  2. 签署后的证书 web.crt 发回给网站
    cp web.crt ../web

网站将证书挂到https服务器

这一步请移步参考各https容器配置

用户访问web网站

  1. 模拟用户从网站下载证书
    cd ../user
    cp ../web/web.crt .
  2. 验证网站证书的合法性
    openssl verify -CAfile rootCA.cert -ca-bundle web.crt
    rootCA.cert是机构发布,并得到用户得到信任的根证书,用此证书验证web.crt的合法性。
原文地址:https://www.cnblogs.com/aauutthh/p/5777633.html