域名申请及后续证书的配置
当时域名申请下来之后,整个上线与接入流程分为四个标准阶段:DNS 解析指向、服务器端端口与防火墙放行、NPM 反向代理配置、以及 申请与强制 HTTPS 证书。
以下是完整的实操还原:
第一阶段:域名 DNS 解析(把名字绑到公网 IP)
登录域名注册商的 DNS 解析控制台(如阿里云云解析 DNS、DNSPod 等)。
进入该域名的解析设置页面,添加解析记录:
记录类型:选择
A记录。主机记录:
如果访问主域名,填
@。如果使用二级域名(如博客),填
blog或自定义前缀。
记录值:填写云服务器的 公网 IP 地址。
TTL:保持默认的
10 分钟。
验证步骤: 在本地电脑终端(Terminal 或 CMD)中执行:
Bash
ping yourdomain.com验证标准:返回的 IP 地址正是你的云服务器公网 IP,且有响应,说明解析已全球生效。
第二阶段:云服务器安全组与端口确认
NPM 负责统一接收入口流量,必须保证宿主机的标准 Web 端口对外开放:
登录云服务器厂商管理控制台,找到 ECS 实例的 安全组(Security Groups)。
在 入方向规则 中确认已放行以下端口:
80端口(HTTP):协议 TCP,源地址0.0.0.0/0(Let's Encrypt 证书验证及 HTTP 访问必需)。443端口(HTTPS):协议 TCP,源地址0.0.0.0/0(加密访问必需)。81端口:NPM 后台管理面板端口(建议仅对个人 IP 开放或按需访问)。
验证步骤: 在本地电脑浏览器访问
http://<公网IP>,若出现 NPM 的默认欢迎页(Congratulations!或默认 404 页面),说明网络链路完全打通。
第三阶段:NPM(Nginx Proxy Manager)配置反向代理
这是将域名请求精准导流到对应后端容器(如 Halo 博客)的关键环节:
浏览器访问
http://<公网IP>:81登录 NPM 管理后台。点击顶部菜单栏的 Hosts -> Proxy Hosts。
点击右上角绿色按钮 Add Proxy Host,在弹出的 Details 标签页填写:
Domain Names:输入刚解析好的完整域名(例如
yourdomain.com,输完按键盘回车键确认生成标签)。Scheme:选择
http。Forward Hostname / IP:
如果 NPM 和 Halo 在同一个 Docker 网络中,直接填写容器名(如
halo)。如果不在同一网络或通过宿主机通信,填写云服务器私网 IP 或 Docker 网桥网关(如
172.17.0.1)。
Forward Port:填写 Halo 容器的 Web 端口(默认为
8090)。勾选以下功能开关:
Cache Assets(静态资源缓存)
Block Common Exploits(基础 SQL 注入及常见漏洞拦截)
Websockets Support(支持 WebSocket 实时通信)
第四阶段:申请并开启 Let's Encrypt SSL 免费证书
在同一个配置窗口中,切换到 SSL 标签页完成加密:
SSL Certificate:在下拉框中选择
Request a new SSL Certificate(申请新证书)。勾选以下开关:
Force SSL(核心:强制将所有的
http://访问 301 重定向到安全的https://)。HTTP/2 Support(提升页面多路复用加载速度)。
HSTS Enabled(增强安全防护)。
填写通知邮箱,并勾选
I Agree to the Let's Encrypt Terms of Service。点击右下角 Save 按钮。
NPM 后台会自动通过 HTTP-01 验证协议与 Let's Encrypt 机构交互、完成域名所有权核验并下发证书。
第五阶段:最终访问与服务自愈验证
打开浏览器(无需输入端口号),直接访问:
Plaintext
https://yourdomain.com验证标准:
浏览器地址栏左侧出现安全小锁图标。
点击小锁查看证书,显示颁发机构为
Let's Encrypt且状态有效。页面正常加载出 Halo 博客首页,整条链路从 DNS → 443 → NPM 反向代理 → Halo 容器完全走通。
域名申请及后续证书的配置
https://originspace.work/archives/yu-ming-shen-qing
评论