CentOS7 nginx 自签名主域名:ctyunaidev 生成自签名匹配所有的子域名的证书。制作成shell脚本。
以下是制作自签名证书的 shell 脚本,适用于 CentOS 7 和 nginx:
#!/bin/bash
# 主域名
DOMAIN=ctyunai.dev
# 证书保存路径
CERT_PATH=/etc/nginx/ssl/$DOMAIN
# 证书有效期(单位:天)
VALID_DAYS=3650
# 证书密码
CERT_PASS=your_password
# 创建证书保存目录
mkdir -p $CERT_PATH
# 生成私钥
openssl genrsa -des3 -passout pass:$CERT_PASS -out $CERT_PATH/$DOMAIN.key 2048
# 去除私钥口令
openssl rsa -passin pass:$CERT_PASS -in $CERT_PATH/$DOMAIN.key -out $CERT_PATH/$DOMAIN.key
# 生成证书请求
openssl req -new -key $CERT_PATH/$DOMAIN.key -out $CERT_PATH/$DOMAIN.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=your_organization/OU=your_department/CN=$DOMAIN"
# 生成证书文件
openssl x509 -req -days $VALID_DAYS -in $CERT_PATH/$DOMAIN.csr -signkey $CERT_PATH/$DOMAIN.key -out $CERT_PATH/$DOMAIN.crt
# 创建证书链文件
cat $CERT_PATH/$DOMAIN.crt $CERT_PATH/$DOMAIN.key > $CERT_PATH/$DOMAIN.pem
# 生成通配符证书
openssl x509 -req -days $VALID_DAYS -in $CERT_PATH/$DOMAIN.csr -signkey $CERT_PATH/$DOMAIN.key -out $CERT_PATH/wildcard.crt -extensions v3_req -extfile <(printf "[v3_req]\nsubjectAltName=DNS:*.${DOMAIN}")
# 创建通配符证书链文件
cat $CERT_PATH/wildcard.crt $CERT_PATH/$DOMAIN.key > $CERT_PATH/wildcard.pem
# 设置证书文件权限
chmod 400 $CERT_PATH/*
echo "证书创建完成:"
ls -l $CERT_PATH
执行以上脚本,将会在 /etc/nginx/ssl/ctyunai.dev 目录下生成以下文件:
ctyunai.dev.key:私钥文件。ctyunai.dev.crt:证书文件。ctyunai.dev.pem:证书链文件。wildcard.crt:通配符证书文件。wildcard.pem:通配符证书链文件。
其中,通配符证书文件 wildcard.crt 匹配所有的子域名。nginx 配置示例:
server {
listen 443 ssl;
server_name *.ctyunai.dev;
ssl_certificate /etc/nginx/ssl/ctyunai.dev/wildcard.pem;
ssl_certificate_key /etc/nginx/ssl/ctyunai.dev/ctyunai.dev.key;
...
}
原文地址: http://www.cveoy.top/t/topic/bQNe 著作权归作者所有。请勿转载和采集!