# 1Panel 配置 SSL 证书：ACME 账户、DNS 账户与自动续签

> 在 1Panel v2 中创建 ACME 账户和 DNS 账户，申请 Let's Encrypt 证书（含通配符），为网站启用 HTTPS 和 HTTP 跳转，并开启自动续签。

Source: https://ssl.sh/zh/guides/1panel-ssl/
Last updated: 2026-11-10

在 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](https://ssl.sh/zh/guides/enable-hsts/)。

## 验证

配置正确时，颁发者是 Let's Encrypt，到期时间在未来，HTTP 请求返回 301 跳转。用 [SSL 证书检查](https://ssl.sh/zh/tools/ssl-checker/) 从外部检查，或在终端运行：

```bash
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 监控](https://ssl.sh/zh/monitor/)（开发中） 作为独立检查。

## 常见问题排查

- **DNS 验证失败**：密钥错误或权限不足、域名 DNS 不在所选服务商、TXT 记录未生效，检查 DNS 账户配置和申请日志。
- **HTTP 验证超时**：80 端口不通或未备案被拦截，见 [certbot 连接超时](https://ssl.sh/zh/errors/certbot-timeout-during-connect/)，原因相同。
- **CAA 记录阻止签发**：CAA 记录没有允许所选 CA，见 [CAA 记录阻止签发](https://ssl.sh/zh/errors/caa-record-prevents-issuance/)。
- **too many certificates already issued**：反复申请触发频率限制，见 [Let's Encrypt 频率限制](https://ssl.sh/zh/errors/lets-encrypt-rate-limit/)。
- **访问子域名提示证书不匹配**：证书里没有该子域名，或二级子域名不在通配符范围内，见 [NET::ERR_CERT_COMMON_NAME_INVALID](https://ssl.sh/zh/errors/net-err-cert-common-name-invalid/)。
