You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义域名迷你站的SSL Proxy搭建及证书自动管理咨询

迷你站自定义域名SSL代理可行实现方案

技术栈选型

  • 反向代理选用Nginx,成熟稳定,原生支持SNI域名识别、动态证书加载、七层流量转发,完全匹配需求
  • 证书管理使用Certbot + Let's Encrypt HTTP-01验证方式,不需要客户操作DNS,只要配置好CNAME即可完成证书签发
  • 自动化调度用Shell脚本+系统定时任务即可实现全流程无人值守,有内部管理系统的可以直接把脚本对接进现有后台

核心部署配置逻辑

1. 代理服务器前置准备

首先给代理服务器配置公网IP,开放防火墙80、443端口,安装好Nginx和Certbot。
先配置Nginx默认80端口规则,统一处理HTTP请求,单独预留ACME验证路径,其余请求强制跳转HTTPS:

server {
    listen 80 default_server;
    server_name _;
    # 处理Let's Encrypt证书验证请求
    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
        allow all;
    }
    location / {
        return 301 https://$host$request_uri;
    }
}

创建对应的目录:

mkdir -p /etc/nginx/conf.d /var/www/certbot

2. 自定义域名自动绑定脚本

写一个可直接调用的Shell脚本,客户提交自定义域名后只要执行脚本就能完成全流程配置,示例脚本逻辑:

#!/bin/bash
# 入参说明:$1=客户自定义域名 $2=对应迷你站域名 如site1.example.com
CUSTOM_DOMAIN=$1
TARGET_MINISITE=$2

# 第一步:调用certbot签发SSL证书
certbot certonly --webroot -w /var/www/certbot -d ${CUSTOM_DOMAIN} --agree-tos --email your-admin@your-domain.com --non-interactive

# 第二步:生成对应Nginx站点配置
cat > /etc/nginx/conf.d/${CUSTOM_DOMAIN}.conf << EOF
server {
    listen 443 ssl;
    server_name ${CUSTOM_DOMAIN};

    ssl_certificate /etc/letsencrypt/live/${CUSTOM_DOMAIN}/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/${CUSTOM_DOMAIN}/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        proxy_pass https://${TARGET_MINISITE};
        proxy_set_header Host \$host;
        proxy_set_header X-Real-IP \$remote_addr;
        proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto \$scheme;
    }
}
EOF

# 第三步:校验配置并重载Nginx生效
nginx -t && systemctl reload nginx

给脚本添加执行权限后,只要执行./bind_domain.sh video.customer.com site1.example.com就能完成证书生成、代理配置全流程。

3. 证书自动续期配置

Certbot安装后默认会添加系统定时任务校验证书续期,你只要额外配置续期后自动重载Nginx的钩子即可,编辑/etc/letsencrypt/cli.ini添加以下配置:

renew_hook = systemctl reload nginx

也可以手动添加crontab任务兜底:

0 2 * * * certbot renew --quiet --deploy-hook "systemctl reload nginx"

4. 业务流程适配

完全匹配你预期的工作流:

  1. 客户提交需要绑定的自定义域名和对应的迷你站需求
  2. 你侧生成迷你站后,执行上述脚本完成代理配置和证书生成
  3. 告知客户将自定义域名配置CNAME指向你的代理服务器即可正常访问

如果有客户需要泛域名证书,要把证书验证方式换成DNS-01,需要客户配合添加TXT验证记录,如果你侧提供DNS解析服务也可以自动完成验证


轻量化替代方案

如果客户量级不大,也可以用Caddy作为反向代理,Caddy原生支持自动HTTPS,不需要手动配置Certbot,只要在Caddyfile里添加对应规则即可自动完成证书签发、续期、流量转发,配置更简洁:

video.customer.com {
    reverse_proxy https://site1.example.com
}

内容的提问来源于stack exchange,提问作者Dan Burdetsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 15:24:03