🎯 目标 :完美绕过 80/443 端口封锁,为 DuckDNS 域名配置 HTTPS,并实现 永久自动续期!
🛠️ 1. 安装神器 acme.sh
在终端执行以下命令,安装全自动证书管家,并刷新环境变量:
bash
curl https://get.acme.sh | sh
source ~/.bashrc
💡 一针见血:接管所有的脏活累活。代替你向机构发请求,并会在后台埋下定时任务实现全自动续期,让你彻底躺平。🤖
🔑 2. 配置 DuckDNS 专属令牌
登录 DuckDNS 官网获取你的 Token,并设为临时环境变量:
ini
export DuckDNS_Token="你的真实Token填在这里"
💡 一针见血:给脚本一把"钥匙",让它有权限全自动去后台写 TXT 记录对暗号,向机构证明域名是你的。🔑
🪄 3. 一键申请证书
强制使用 Let's Encrypt 机构,避开网络拥堵,一键秒下证:
css
acme.sh --issue --dns dns_duckdns -d 你的域名.duckdns.org --server letsencrypt
💡 一针见血 :纯正的 DNS-01 验证!脚本会自动添加暗号 ➡️ 验证通过下载证书 ➡️ 自动抹除暗号。看到绿色的
Cert success!即为成功。⚡
📂 4. 安全安装证书
建立专属存放目录,并设置自动重载机制:
bash
mkdir -p /etc/nginx/ssl
acme.sh --install-cert -d 你的域名.duckdns.org \
--key-file /etc/nginx/ssl/你的域名.duckdns.org.key \
--fullchain-file /etc/nginx/ssl/你的域名.duckdns.org.pem \
--reloadcmd "nginx -s reload"
💡 一针见血:把证书挪到 Nginx 专属目录下,并设下联动"机关":以后每 60 天证书自动续期后,会自动触发重载刷新,全程无缝。🔄
⚙️ 5. 配置 Nginx 服务
修改 /etc/nginx/conf.d/pig.conf,填入以下配置:
ini
server {
listen 4443 ssl;
server_name 你的域名.duckdns.org;
ssl_certificate /etc/nginx/ssl/你的域名.duckdns.org.pem;
ssl_certificate_key /etc/nginx/ssl/你的域名.duckdns.org.key;
location / {
root html;
index index.html index.htm;
}
}
测试配置并重载生效:
nginx -t
nginx -s reload
💡 一针见血:告诉 Nginx 在 4443 端口开启加密通道,并装上刚刚申请好的"锁和钥匙"。🛡️
🚦 6. 端口放行与网络映射
打通本地防火墙:
css
sudo firewall-cmd --permanent --add-port=4443/tcp
sudo firewall-cmd --reload
主路由器设置端口转发 (核心):
去路由器后台,将外网 4443 端口 ➡️ 映射到 ➡️ 内网 CentOS IP 的 4443 端口。
💡 一针见血:防火墙给系统"开门",路由器给内网开"天窗",确保外网流量能精准直达你的 Nginx!🌍
🎉 大功告成!
📱 终极测试 :关闭手机 WiFi,用 5G 流量访问 https://你的域名.duckdns.org:4443
✅ 看到地址栏的小绿锁 🔒,直接起飞!🛫
(P.S. 续期的定时任务已自动写入系统,这辈子都不用再管它啦!🥂)