openssl 生成证书

135 阅读1分钟

生成私钥文件

openssl genrsa -des3 -out ca.key 2048

创建证书请求

openssl req -new -key ca.key -out ca.csr

生成ca.crt

openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

go生成证书的步骤:

  1. 找到openssl的配置文件:打开copy_extensions=copy image.png

  2. 打开req_extensions = v3_req

    image.png

  3. 找到 v3_req 添加subjectAltName = @alt_names

    image.png

  4. 添加新的标签 alt_names,再添加标签字段:DNS.1=*.xxx.com,可以配置多个

    image.png

  5. 生成证书私钥:

openssl genkey -algorithm RSA -out server.key
  1. 通过私钥server.key生成证书请求文件server.csr:
openssl req -new -nodes -key server.key -out server.csr -days 36500 -config ./openssl.cnf -extensions v3_req

7.生成SAN证书

openssl x509 -req -days 365 -in server.csr -out server.pem -CA ca.crt -CAkey ca.key -CAcreateserial -extfile ./openssl.cnf -extensions v3_req

key: 服务器上的私钥文件,用于对发送给客户端数据的加密,对客户端收到数据的解密

csr: 证书签名请求文件,用于提交给证书颁发机构(CA)对证书的签名。

crt: 由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,签署者的签名等信息

pem: 是基于Base64编码的证书格式,扩展名包括PEM、CRT、CER。

SAN: Subject Alternative Name 是SSL标准x509中定义的一个扩展,使用了SAN字段的SSL证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不用域名的解析。

一般win用crt扩展名linux用pem扩展名