创建根证书和其私钥:
openssl req -x509 \
-sha256 -days 356 \
-nodes \
-newkey rsa:2048 \
-subj "/CN=demo.liuqi.com/C=CN/L=Chengdu" \
-keyout rootCA.key -out rootCA.crt
然后我们就可以看到下面两个文件:
我们可以用命令openssl x509 -in rootCA.crt -noout -text看看证书里面的内容:
可以看出,由于是根证书,颁发者和被颁发者都是同一个机构,而中间那大块就是根证书的公钥了。
创建自签名的证书
创建服务器私钥
openssl genrsa -out server.key 2048
配置证书里的相关内容
创建文件csr.conf用于存储相关证书内容:
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn
[ dn ]
C = CN
ST = Sichuan
L = Chengdu
O = MLopsHub
OU = MlopsHub Dev
CN = demo.liuqi.com
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = demo.liuqi.com
DNS.2 = www.demo.liuqi.com
IP.1 = 192.168.1.5
IP.2 = 192.168.1.6
生成证书签名请求文件(CSR)
openssl req -new -key server.key -out server.csr -config csr.conf
生成的server.csr文件里还会包含服务器的公钥。我们可以用openssl req -text -noout -in server.csr命令查看这个文件里的内容。
添加证书拓展字段
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = demo.liuqi.com
生成证书
openssl x509 -req \
-in server.csr \
-CA rootCA.crt -CAkey rootCA.key \
-CAcreateserial -out server.crt \
-days 365 \
-sha256 -extfile cert.conf
生成的文件server.crt就是最后的证书了。