今天终于把博客域名 zzqblog.codes 的 HTTPS 搞定了。在 1Panel 面板下,整个过程虽然遇到了一些选择,但最终配置非常丝滑。以下是完整的实践记录:
1. 环境准备
控制面板:1Panel
Web 服务器:OpenResty(1Panel 推荐的 Nginx 增强版)
证书提供商:Let's Encrypt(免费、自动续期)
2. 证书申请方式的选择:HTTP 还是 DNS?
在申请证书时,我面临两个选择:
DNS 验证:可以申请泛域名证书(如
*.zzqblog.codes),但需要配置域名服务商(如 Name.com)的 API Key。HTTP 验证:申请简单,只需证明你对当前域名有服务器控制权。
最终决定:由于目前主要服务于
zzqblog.codes和www二级域名,我选择了 HTTP 验证。它不需要暴露域名商的 API 权限,更加安全便捷。
3. 实操步骤
解析域名:在域名后台(Name.com)将
zzqblog.codes和www解析到服务器 IP,并确保 80 端口已放行。创建 Acme 账户:在 1Panel 的“证书”菜单下,使用自己的邮箱创建一个 Acme 账户,用于接收 Let's Encrypt 的通知。
申请证书:
选择 HTTP 验证模式。
输入域名
zzqblog.codes和www.zzqblog.codes。1Panel 自动配合 OpenResty 完成了
.well-known/acme-challenge的文件校验。
证书自动续期:开启了自动续期功能。虽然 Let's Encrypt 证书只有 90 天有效期,但 1Panel 会在到期前 30 天自动完成重新申请。
4. 网站 HTTPS 配置优化
拿到证书后,我在网站设置中进行了以下关键配置:
强制跳转:开启“访问 HTTP 自动跳转到 HTTPS”,确保流量不走明文。
启用 HSTS:增加网站安全性,告诉浏览器在未来一段时间内只通过 HTTPS 访问。
TLS 协议优化:
保留:TLS 1.2, TLS 1.3(现代安全协议)。
弃用:TLS 1.0, TLS 1.1(过时的不安全协议)。
5. 最终成果
通过日志可以看到,申请过程非常顺利,仅耗时 14 秒:
<TEXT>
2026/01/30 14:24:56 开始申请证书...
2026/01/30 14:25:04 [www.zzqblog.codes] The server validated our request
2026/01/30 14:25:08 [zzqblog.codes] The server validated our request
2026/01/30 14:25:10 申请 [zzqblog.codes,www.zzqblog.codes] 证书成功!!
现在,浏览器地址栏已经出现了象征安全的小锁头 🔒。
博主碎碎念: 折腾环境是博主的必经之路。虽然现在证书只有 90 天,但有了 1Panel 的自动续期,基本上可以做到“一次配置,终身无忧”。如果你也想快速搭建博客,1Panel + OpenResty 确实是个不错的方案。