以下是制作自签名证书的shell脚本:

#!/bin/bash

# 设置主机名
HOSTNAME="ctyunai.dev"

# 生成证书
openssl req -new -newkey rsa:2048 -nodes -keyout $HOSTNAME.key -out $HOSTNAME.csr -subj "/C=CN/ST=Shanghai/L=Shanghai/O=ctyunai/OU=IT Department/CN=$HOSTNAME"
openssl x509 -req -days 365 -in $HOSTNAME.csr -signkey $HOSTNAME.key -out $HOSTNAME.crt

# 合并证书
cat $HOSTNAME.key $HOSTNAME.crt > $HOSTNAME.pem

# 移动证书到nginx目录
mv $HOSTNAME.pem /etc/nginx/ssl/
chmod 600 /etc/nginx/ssl/$HOSTNAME.pem

# 配置nginx
echo "
server {
    listen 443 ssl;
    server_name $HOSTNAME;

    ssl_certificate /etc/nginx/ssl/$HOSTNAME.pem;
    ssl_certificate_key /etc/nginx/ssl/$HOSTNAME.pem;

    # 匹配所有子域名
    if (\$host ~* \"^(.*)\.$HOSTNAME\$\") {
        set \$subdomain \$1;
    }

    # 配置反向代理
    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host \$subdomain.$HOSTNAME;
    }
}" > /etc/nginx/conf.d/$HOSTNAME.conf

# 重启nginx
systemctl restart nginx

执行以上脚本后,会生成自签名证书,并将证书移动到nginx的ssl目录下,并配置nginx,使其匹配所有子域名,并反向代理至本地的8080端口。最后重启nginx服务。

注意:在执行脚本前,需要先安装nginx,并将本机的hosts文件中添加一行:127.0.0.1 ctyunai.dev

CentOS7 nginx 自签名域名:ctyunaidev使用根域名生成自签名匹配所有的子域名的证书。制作成shell脚本。

原文地址: http://www.cveoy.top/t/topic/bQM2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录