# 免费 SSL 证书申请：在线签发 Let's Encrypt 证书（支持通配符）

> 在线申请免费 Let's Encrypt SSL 证书，支持通配符：用 HTTP 文件或 DNS TXT 记录验证，下载证书和私钥。私钥在浏览器本地生成，不经过任何服务器。

Source: https://ssl.sh/zh/tools/free-ssl-certificate/
Last updated: 2026-11-11

不用装任何软件就能拿到受信任的 Let's Encrypt 证书：填域名、放一个验证文件或添加一条 TXT 记录，然后下载证书和私钥。

这是一个免费 SSL 证书在线申请工具：完全在浏览器里运行的 ACME 客户端，从 [Let's Encrypt](https://letsencrypt.org/) 拿到真正受浏览器信任的证书。适合没法在服务器上运行 certbot 的场景：虚拟主机、需要上传证书的 CDN 或云厂商控制台、路由器和 NAS、临时测试。自己能登录的服务器，更推荐用[一键部署命令生成器](https://ssl.sh/zh/tools/acme-command-generator/)配好自动续期。

## 使用步骤

1. **填写域名**，例如 `example.com www.example.com`；要通配符就填 `example.com *.example.com`。
2. **选择验证方式**：HTTP 文件或 DNS TXT 记录（见下表）。
3. **开始申请**。浏览器生成 Let's Encrypt 账户密钥并创建订单，列出每个域名需要放的文件或记录。
4. **放好文件或添加 TXT 记录**，点击 **检查**。ssl.sh 会直接问域名的权威 DNS 服务器，或通过 HTTP 读取验证文件，逐个标出“已就位”或“还没查到”。
5. **验证并签发**。Let's Encrypt 逐个验证域名，通过后页面生成私钥和 CSR、提交订单并下载证书链。
6. **下载**完整证书链和私钥，安装到服务器或上传到控制台。

等 DNS 生效时关掉了页面也没关系，再打开本页会提示继续未完成的订单，Let's Encrypt 会保留订单大约一周。

## 用 HTTP 文件还是 DNS 记录？

网站已经能访问时用 HTTP 文件最快；能修改域名解析就能用 DNS 记录，通配符只能用 DNS。

| | HTTP 文件验证（http-01） | DNS TXT 记录验证（dns-01） |
|---|---|---|
| 需要放什么 | `http://域名/.well-known/acme-challenge/<token>` 文件 | `_acme-challenge.域名` 的 TXT 记录 |
| 前提 | 域名解析到能从公网访问 80 端口的网站 | 能修改域名的 DNS 解析 |
| 通配符 | 不支持 | `*.example.com` 必须用它 |
| 等待时间 | 上传后马上可以验证 | 几秒到几分钟，看 DNS 服务商 |
| 适合 | 虚拟主机上已经在运行的网站 | CDN、内网主机、没开 80 端口或未备案的服务器 |

HTTP 验证时 Let's Encrypt 会跟随跳转到 HTTPS，所以全站强制 HTTPS 的网站也能验证。但登录页、WAF 规则、防盗链，或者由 CDN 直接响应 `/.well-known/acme-challenge/` 都会导致失败。

## 下载得到的文件

| 文件 | 内容 | 用途 |
|---|---|---|
| `example.com.fullchain.pem` | 服务器证书加中间证书 | Nginx `ssl_certificate`、Apache 2.4.8+ `SSLCertificateFile`、宝塔“证书（PEM 格式）”、多数云控制台 |
| `example.com.key` | 未加密的 PKCS #8 私钥（ECDSA P-256 或 RSA 2048） | `ssl_certificate_key`、`SSLCertificateKeyFile`、控制台的“私钥”一栏 |
| `example.com.crt` 和 `example.com.chain.pem` | 证书和中间证书分开 | 老版本 Apache，以及要求单独填写“CA 证书链”的面板 |

IIS、Azure、Java 需要 PFX 格式，用 [PEM 转 PFX](https://ssl.sh/zh/tools/ssl-converter/pem-to-pfx/) 合并即可。[TLS 配置生成器](https://ssl.sh/zh/tools/tls-config-generator/) 可以写出对应的服务器配置，装好后用 [SSL 检查](https://ssl.sh/zh/tools/ssl-checker/) 确认证书链完整。

## 数据去了哪里

| 数据 | 去向 |
|---|---|
| 证书私钥 | 在页面里用 WebCrypto 生成，不保存、不上传 |
| 证书请求（CSR）和订单 | 由浏览器直接发给 Let's Encrypt |
| Let's Encrypt 账户密钥 | 在页面里生成，保存在本浏览器的 localStorage，用于继续未完成的订单 |
| 域名和验证 token | 只在点“检查”时发给 ssl.sh，用于 DNS 或 HTTP 预检 |

账户密钥只在你的浏览器里。清除网站数据后，下次申请会自动用新账户，唯一的影响是不能再继续之前未完成的订单。

## 续期和证书有效期

Let's Encrypt 证书目前有效期 90 天，默认值 2027 年 2 月 10 日降到 64 天，2028 年 2 月 16 日降到 45 天，和 [47 天时间线](https://ssl.sh/zh/timeline/certificate-validity/) 一致。Let's Encrypt 还在 2025 年 6 月 4 日停发了到期提醒邮件。手动申请的证书只能手动续期，续期会越来越频繁，而且没人提醒。

自己的服务器，花几分钟用[一键部署命令生成器](https://ssl.sh/zh/tools/acme-command-generator/)配好 certbot 或 acme.sh，以后就会在后台自动续期。只能上传证书的平台，建议在有效期过去三分之二时（90 天证书的第 60 天左右）安排提醒，或用[有效期计算器](https://ssl.sh/zh/tools/validity-calculator/)算出下次更换的日期。

## 限制和常见错误

- **频率限制**：同一组域名每 7 天最多签发 5 张证书，同一域名每小时最多验证失败 5 次。详见 [Let's Encrypt 频率限制](https://ssl.sh/zh/errors/lets-encrypt-rate-limit/)。想先演练可以选测试环境。
- **CAA 记录**：域名有 CAA 记录时，其中必须有一条允许 `letsencrypt.org`，见 [CAA 记录导致无法签发](https://ssl.sh/zh/errors/caa-record-prevents-issuance/)，也可以用 [CAA 检查](https://ssl.sh/zh/tools/caa-checker/) 确认。
- **80 端口超时**：HTTP 验证时连不上，先在防火墙和云服务器安全组放行 80 端口，或者改用 DNS 验证，见 [Timeout during connect](https://ssl.sh/zh/errors/certbot-timeout-during-connect/)。
- **NXDOMAIN 或 TXT 值不对**：记录没加、还没生效，或者主机记录多写了一遍域名（变成 `_acme-challenge.example.com.example.com`），见 [DNS problem: NXDOMAIN](https://ssl.sh/zh/errors/certbot-dns-problem-nxdomain/)。

背后的协议原理见 [ACME 协议是怎么工作的](https://ssl.sh/zh/learn/acme-protocol/)。


## FAQ

**证书真的免费、浏览器信任吗？**

是的。Let's Encrypt 是非营利组织 ISRG 运营的证书颁发机构，证书免费，所有主流浏览器和操作系统都信任。它签发的是域名验证型（DV）证书，只证明你控制这个域名，不验证企业身份。

**能申请通配符证书吗？**

可以。填 *.example.com（一般同时填 example.com），验证方式选 DNS TXT 记录。Let's Encrypt 只接受用 DNS 验证通配符，两个域名的 TXT 记录都加在 _acme-challenge.example.com 下，是两条不同的值。

**在网站上申请证书安全吗？**

本页的私钥由浏览器的 WebCrypto 生成，只存在于页面中。浏览器直接和 Let's Encrypt 通信，ssl.sh 收不到私钥，也收不到证书请求。如果你们的安全规定要求私钥只能在服务器上生成，请在服务器上用 certbot 或 acme.sh。

**域名没有备案，能用 HTTP 文件验证吗？**

服务器在中国大陆时，未备案的域名访问 80 端口通常会被云厂商拦截，HTTP 验证会失败。改用 DNS TXT 记录验证即可，它不需要访问你的服务器。

**证书有效期多久？怎么续期？**

目前 90 天；Let's Encrypt 默认有效期 2027 年 2 月 10 日改为 64 天，2028 年 2 月 16 日改为 45 天。手动续期就是到期前再用本页申请一次。有服务器权限时，用 certbot 或 acme.sh 自动续期更稳妥，一键部署命令生成器会写好全部命令。
