生成
免费 SSL 证书申请
不用装任何软件就能拿到受信任的 Let's Encrypt 证书:填域名、放一个验证文件或添加一条 TXT 记录,然后下载证书和私钥。
浏览器本地运行 浏览器直接和 Let's Encrypt 通信。私钥在你的浏览器里生成(WebCrypto),不会离开你的设备;只有点“检查”时,ssl.sh 才会收到域名。
这是一个免费 SSL 证书在线申请工具:完全在浏览器里运行的 ACME 客户端,从 Let's Encrypt 拿到真正受浏览器信任的证书。适合没法在服务器上运行 certbot 的场景:虚拟主机、需要上传证书的 CDN 或云厂商控制台、路由器和 NAS、临时测试。自己能登录的服务器,更推荐用一键部署命令生成器配好自动续期。
使用步骤
- 填写域名,例如
example.com www.example.com;要通配符就填example.com *.example.com。 - 选择验证方式:HTTP 文件或 DNS TXT 记录(见下表)。
- 开始申请。浏览器生成 Let's Encrypt 账户密钥并创建订单,列出每个域名需要放的文件或记录。
- 放好文件或添加 TXT 记录,点击 检查。ssl.sh 会直接问域名的权威 DNS 服务器,或通过 HTTP 读取验证文件,逐个标出“已就位”或“还没查到”。
- 验证并签发。Let's Encrypt 逐个验证域名,通过后页面生成私钥和 CSR、提交订单并下载证书链。
- 下载完整证书链和私钥,安装到服务器或上传到控制台。
等 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 合并即可。TLS 配置生成器 可以写出对应的服务器配置,装好后用 SSL 检查 确认证书链完整。
数据去了哪里
| 数据 | 去向 |
|---|---|
| 证书私钥 | 在页面里用 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 天时间线 一致。Let's Encrypt 还在 2025 年 6 月 4 日停发了到期提醒邮件。手动申请的证书只能手动续期,续期会越来越频繁,而且没人提醒。
自己的服务器,花几分钟用一键部署命令生成器配好 certbot 或 acme.sh,以后就会在后台自动续期。只能上传证书的平台,建议在有效期过去三分之二时(90 天证书的第 60 天左右)安排提醒,或用有效期计算器算出下次更换的日期。
限制和常见错误
- 频率限制:同一组域名每 7 天最多签发 5 张证书,同一域名每小时最多验证失败 5 次。详见 Let's Encrypt 频率限制。想先演练可以选测试环境。
- CAA 记录:域名有 CAA 记录时,其中必须有一条允许
letsencrypt.org,见 CAA 记录导致无法签发,也可以用 CAA 检查 确认。 - 80 端口超时:HTTP 验证时连不上,先在防火墙和云服务器安全组放行 80 端口,或者改用 DNS 验证,见 Timeout during connect。
- NXDOMAIN 或 TXT 值不对:记录没加、还没生效,或者主机记录多写了一遍域名(变成
_acme-challenge.example.com.example.com),见 DNS problem: NXDOMAIN。
背后的协议原理见 ACME 协议是怎么工作的。
常见问题
证书真的免费、浏览器信任吗?
是的。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 自动续期更稳妥,一键部署命令生成器会写好全部命令。
资料来源
- RFC 8555: Automatic Certificate Management Environment (ACME)
- Let's Encrypt: Challenge Types
- Let's Encrypt: Rate Limits
- Let's Encrypt: Staging Environment
- Let's Encrypt: Ending Expiration Notification Emails
- Let's Encrypt: Decreasing Certificate Lifetimes to 45 Days
- Let's Encrypt: Policy and Legal Repository