cret.md 2.01 KB

证书制作

ca证书生成流程(在升级版本的GO中已经不支持读取)

使用-subj参数,指定服务器的相关信息,与之前的不同,此时不需要引导输入。

openssl req \
    -x509 \
    -nodes \
    -newkey rsa:2048 \
    -keyout ca.key \
    -out ca.crt \
    -days 3650 \
    -subj "/C=CN/ST=ZheJiang/L=ZheJiang/O=Global/CN=pro2d Security/OU=IT Department/CN=pro2d"

SAN证书生成(使用开启扩展SAN的证书)

生成私钥

$ openssl genpkey -algorithm RSA -out server.key

根据私钥server.key生成证书请求文件server.csr:

openssl req -new -nodes -key server.key -out server.csr -days 3650 \
  -subj "/C=CN/OU=IT/O=Global/CN=pro2d/L=ZheJiang" \
  -config openssl.cnf -extensions v3_req

验证证书CSR的扩展属性

$ openssl req -noout -text -in server.csr

生成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
  • server.csr是前面步骤生成的证书请求文件。
  • ca.crt & ca.key 是CA证书文件和key,用来对server.csr进行签名认证。

查看SAN信息在证书内容

$ openssl x509 -noout -text -in server.pem

现在证书已经生成完毕, server.pem 和 server.key正式我们需要的证书和密钥

一键生成

$ openssl req \
        -x509 \
        -nodes \
        -newkey rsa:2048 \
        -keyout keys/ca.key \
        -out keys/ca.crt \
        -days 3650 \
        -subj "/C=CN/ST=ZheJiang/L=ZheJiang/O=Global/CN=pro2d Security/OU=IT Department/CN=pro2d"
$ openssl genpkey -algorithm RSA -out keys/server.key
$ openssl req -new -nodes -key keys/server.key -out keys/server.csr -days 3650  -subj "/C=CN/OU=IT/O=Global/CN=pro2d/L=ZheJiang"  -config keys/openssl.cnf -extensions v3_req
$ openssl x509 -req -days 365 -in keys/server.csr -out keys/server.pem -CA keys/ca.crt -CAkey keys/ca.key -CAcreateserial -extfile keys/openssl.cnf -extensions v3_req