面板与 NAS

1Panel 申请和配置 SSL 证书

作者: · 最后核实

在 1Panel v2 里先建 ACME 账户和 DNS 账户,再申请 Let's Encrypt 证书,然后在网站设置里开启 HTTPS 和 HTTP 跳转,面板会在证书到期前自动续签。菜单和按钮名称以面板实际界面和官方文档为准。

前提条件

申请证书需要一个已建好的站点、指向服务器的 A 记录,以及 HTTP 验证或 DNS 验证其中一种条件。

  • 已安装 1Panel v2,并在“网站”里创建了绑定 example.com 的站点(OpenResty)。
  • 域名 A 记录指向服务器公网 IP,例如 203.0.113.10;服务器在中国大陆且要对外提供网站访问的,域名需已备案。
  • 用 HTTP 验证时:安全组和防火墙放行 80、443 端口。
  • 用 DNS 验证时:域名 DNS 在 1Panel 支持的服务商,并准备好只能管理解析的 API 密钥。

第一步:创建 ACME 账户

ACME 账户决定证书由哪家 CA 签发。打开 1Panel 的 网站 → 证书 → ACME 账户 → 创建,填写邮箱,CA 选择 Let's Encrypt,密钥类型保持默认即可,保存。

第二步:创建 DNS 账户(推荐)

有了 DNS 账户,1Panel 申请证书时会通过服务商 API 自动添加和删除验证用的 TXT 记录。在证书页面点 DNS 账户 → 创建,选择服务商(阿里云、腾讯云/DNSPod、Cloudflare 等),填写对应的 AccessKey/SecretKey 或 Token,保存。

第三步:申请证书

在 证书 → 申请证书 里填写申请表,并打开自动续签:

  • 主域名 填 example.com,“其他域名”填 *.example.com 或 www.example.com。
  • ACME 账户 选第一步创建的账户。
  • 验证方式 选 DNS 账户(不需要 80 端口,可签通配符);只有单域名且 80 端口可用时也可以选 HTTP 验证。
  • 打开“自动续签”。

提交后在证书列表里查看申请状态和日志,状态变为已签发即成功。

第四步:为网站启用 HTTPS

在网站列表选中站点,打开 配置(或设置)→ HTTPS:启用 HTTPS,证书来源选“已有证书”并选择刚签发的证书,HTTP 选项选“访问 HTTP 自动跳转到 HTTPS”,保存。确认全站正常后再考虑开启 HSTS,见 开启 HSTS。

验证

配置正确时,颁发者是 Let's Encrypt,到期时间在未来,HTTP 请求返回 301 跳转。用 SSL 证书检查 从外部检查,或在终端运行:

curl ssl.sh/example.com
curl -sI http://example.com | grep -iE '^(HTTP|location)'
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -issuer -dates

自动续期

申请时打开了自动续签的证书,1Panel 会在到期前自动续期,并更新使用该证书的网站。要让它一直有效:

  • DNS 账户的密钥不要删除或轮换后忘记更新;HTTP 验证的站点不要关闭 80 端口或拦截验证路径。
  • 定期在证书列表查看状态和续签日志。
  • Let's Encrypt 默认证书 2027 年 2 月 10 日起为 64 天、2028 年 2 月 16 日起为 45 天,续签频率会提高,自动续签必须一直开着。

Let's Encrypt 已不再发送到期提醒邮件,建议把域名加到 ssl.sh 监控(开发中) 作为独立检查。

常见问题排查

  • DNS 验证失败:密钥错误或权限不足、域名 DNS 不在所选服务商、TXT 记录未生效,检查 DNS 账户配置和申请日志。
  • HTTP 验证超时:80 端口不通或未备案被拦截,见 certbot 连接超时,原因相同。
  • CAA 记录阻止签发:CAA 记录没有允许所选 CA,见 CAA 记录阻止签发。
  • too many certificates already issued:反复申请触发频率限制,见 Let's Encrypt 频率限制。
  • 访问子域名提示证书不匹配:证书里没有该子域名,或二级子域名不在通配符范围内,见 NET::ERR_CERT_COMMON_NAME_INVALID。

常见问题

1Panel 的 ACME 账户选哪家 CA?

默认用 Let's Encrypt 即可,免费、无需额外注册。1Panel 也支持 ZeroSSL、Google 等 CA(以界面选项为准),用这些 CA 时可能需要 EAB 凭据;无论用哪家,域名的 CAA 记录都要允许它。

DNS 账户的密钥需要什么权限?

只给解析管理权限:阿里云用 RAM 子账号授予云解析 DNS 权限,腾讯云用子用户授予 DNSPod 权限,Cloudflare 用只含 Zone → DNS → Edit 的 API Token。不要用主账号密钥。

证书能给面板之外的服务用吗?

可以。证书详情里可以下载证书文件,部分版本还支持把证书推送到本地目录供其他程序使用(以面板功能为准)。注意自动续签后新证书只会自动更新面板内的网站,外部程序需要自己重载。

资料来源

  1. 1Panel 官方文档(v2)
  2. Let's Encrypt: Challenge Types
  3. Let's Encrypt: Profiles