tsl/ssl 证书制作记录

生成自签名证书

  1. 生成服务端秘钥

    $ openssl genrsa -out server.key 1024
    
  2. 生成证书请求文件

    • 编写配置文件openssl.cnf
    $ vi openssl.cnf
    [req]
    req_extensions = v3_req
    distinguished_name = req_distinguished_name
    [req_distinguished_name]
    countryName = CN
    countryName_default = CN
    stateOrProvinceName = ZheJiang
    stateOrProvinceName_default = ZJ
    localityName = HangZhou
    localityName_default = HZ
    organizationalUnitName  = Swaf
    organizationalUnitName_default  = SF
    commonName = Swaf Tech Ltd
    commonName_max  = 64
    [ v3_req ]
    basicConstraints = CA:FALSE
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    subjectAltName = @alt_names
    [alt_names]
    DNS.1 = dog.swaf.cn
    DNS.2 = cat.swaf.cn
    
    • 生成csr文件
    $ openssl req -new -key server.key -out server.csr -config openssl.cnf
    

    也可以不使用openssl.conf文件,这样执行以上命令是根据命令行提示输入相关信息即可。不过这里使用了X509 SAN(subjectAltName)扩展,通过alt_names指定多个域名,这样制作的证书可以被多个域名使用,如果只需支持单个域名(可以是通配符,如 *.xxx.com),可以不需要该文件,在命令行提示中的common name中指定域名即可。

  3. 生成自签名证书

    $ openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt -extensions v3_req -extfile openssl.cnf
    

这样便生成了可用的服务端证书。将私有sever.key和证书serves.crt安装在服务端(配置在tomcat,nginx等),然后在客户端安装server.crt证书即可。

生成ca签名证书

  1. 生成ca证书并自签名

    $ openssl genrsa -out server.key 1024  //ca秘钥
    $ openssl req -new -key ca.key -out ca.csr //根据提示输入ca相关信息
    $ openssl x509 -req -in ca.csr -extensions v3_ca -signkey ca.key -out ca.crt //ca自签名证书
    
  2. 生成服务端证书并使用ca签名

    $ openssl genrsa -out server.key 1024
    $ openssl req -new -key server.key -out server.csr -config openssl.cnf   //openssl.cnf文件同上
    $ openssl x509 -req -days 3650 -extensions v3_req -extfile openssl.cnf -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt    //生成ca签名的服务端证书
    

这样便生成了ca签名的服务端证书。将私有sever.key和证书serves.crt安装在服务端(配置在tomcat,nginx等),然后在客户端安装ca.crt证书即可。

原文地址:https://www.cnblogs.com/dreamvibe/p/9865720.html