
FRP多域名 SSL 证书配置全流程(以52cover.com和283103423.cn为例)
FRP多域名 SSL 证书配置全流程(以52cover.com和283103423.cn为例)
问题背景
需要让两个域名(含主域名和子域名)通过 HTTPS 安全访问,但存在证书不匹配、部分域名提示 “不安全” 的问题,且部署环境为飞牛 OS(NAS 系统),需通过 frp 代理实现。
解决核心思路
通过 Let's Encrypt 生成包含主域名 + 通配符子域名的合并证书,让一个证书覆盖所有需要的域名,再配置到 frp 服务中,解决安全提示问题。
具体步骤
生成包含多域名的证书
使用 Certbot 工具申请覆盖以下域名的证书:主域名:
52cover.com
、283103423.cn
通配符子域名:
*.52cover.com
、*.283103423.cn
(覆盖所有子域名如 www)
执行命令:
bash
sudo certbot certonly --manual --preferred-challenges dns \ --email 283103423@qq.com \ --server https://acme-v02.api.letsencrypt.org/directory \ --agree-tos \ -d "52cover.com" -d "*.52cover.com" \ -d "283103423.cn" -d "*.283103423.cn"
完成 DNS 验证(关键步骤)
根据 Certbot 提示,为每个域名添加对应的 DNS TXT 记录(如
_acme-challenge.52cover.com
),证明域名所有权。等待 DNS 记录生效(1-5 分钟),通过工具验证后按回车继续。
部署证书到 frp 服务
证书生成路径:
证书文件:
/etc/letsencrypt/live/52cover.com/fullchain.pem
私钥文件:
/etc/letsencrypt/live/52cover.com/privkey.pem
复制到 frp 证书目录:
bash
sudo cp /etc/letsencrypt/live/52cover.com/fullchain.pem /vol1/1000/Docker/mefrpc-2/18090/ sudo cp /etc/letsencrypt/live/52cover.com/privkey.pem /vol1/1000/Docker/mefrpc-2/18090/
配置 frp 并重启服务
在飞牛 OS 的 frp 配置界面(或配置文件)中,指定证书路径:toml
[[proxies]] name = 'multi-domain' type = 'https' customDomains = ["52cover.com", "*.52cover.com", "283103423.cn", "*.283103423.cn"] [proxies.plugin] type = 'https2http' localAddr = '127.0.0.1:8090' crtPath = '/vol1/1000/Docker/mefrpc-2/18090/fullchain.pem' keyPath = '/vol1/1000/Docker/mefrpc-2/18090/privkey.pem'
重启 frp 服务:
sudo systemctl restart mefrpc
关键说明
通配符证书
*.domain.com
仅覆盖子域名,需单独添加主域名domain.com
才能完全覆盖。证书有效期为 90 天,到期前需重新执行 Certbot 命令续期(选择
E
扩展证书)。清除浏览器缓存后访问所有域名,均会显示安全锁图标。
通过以上步骤,实现了多个域名(含主域名和子域名)共用一个 SSL 证书,解决了 HTTPS 安全提示问题,且适配飞牛 OS 的 frp 代理环境。