在内部测试或自己折腾的时候,不用花钱去折腾,可以自签名证书。
创建配置文件
创建一个 openssl.cnf
配置文件,支持多种域名扩展
[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no
x509_extensions = v3_ca
[ req_distinguished_name ]
C = CN
ST = Zhejiang
L = Hangzhou
O = CC55
OU = IT Department
CN = zengwu.com.cn
[ v3_req ]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName = @alt_names
basicConstraints = CA:FALSE
subjectKeyIdentifier = hash
[ v3_ca ]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName = @alt_names
basicConstraints = CA:TRUE
subjectKeyIdentifier = hash
[ alt_names ]
# 主要域名
DNS.1 = zengwu.com.cn
# 泛域名支持 (可解析所有三级子域名)
DNS.2 = *.zengwu.com.cn
# IP地址支持 (如有需要)
# IP.3 = 192.168.1.55
生成证书和密钥
# 1. 生成2048位的RSA私钥
openssl genrsa -out zengwu.com.cn.key 2048
# 2. 创建CA根证书(有效期10年)
openssl req -x509 -new -key zengwu.com.cn.key \
-out ca-root.crt -days 3650 \
-config openssl.cnf -extensions v3_ca
# 3. 创建证书签名请求(CSR)
openssl req -new -key zengwu.com.cn.key \
-out zengwu.com.cn.csr -config openssl.cnf
# 4. 使用CA签署证书(有效期10年)
openssl x509 -req -in zengwu.com.cn.csr \
-CA ca-root.crt -CAkey zengwu.com.cn.key \
-CAcreateserial -out zengwu.com.cn.crt \
-days 3650 -extfile openssl.cnf -extensions v3_req
合并证书
将服务器根证书和CA根证书合并
cat zengwu.com.cn.crt ca-root.crt> zengwu.com.cn.pem
最后只要将zengwu.com.cn.key
和zengwu.com.cn.pem
添加到对应的服务器中就可以了
评论区