SSL/TLS 部署教程
申请证书、安装证书、检查证书链、配置自动续期,每一步都给能直接复制的命令。
这里的教程讲怎样把 HTTP 网站改成自动续期的 HTTPS 网站,覆盖 Web 服务器、面板、ACME 客户端和云平台。每篇先写适用版本和前提条件(系统、端口、DNS 解析、备案),再一步一节给出能直接复制到终端的命令。
每篇教程都以两步收尾:先验证,用 SSL 证书检查 看证书链、协议版本和到期时间,或者在终端里运行 curl ssl.sh/example.com;再配置自动续期。截至 2026 年 11 月,公网证书最长 200 天,2029 年 3 月 15 日起缩短到 47 天;Let's Encrypt 默认证书 2027 年 2 月改为 64 天、2028 年 2 月改为 45 天。续期部分优先使用 ARI(ACME 续期信息,RFC 9773),客户端不支持时就每天检查一次。
国内环境的特殊情况单独写了教程:宝塔、1Panel、群晖 NAS、阿里云和腾讯云的免费证书与 CDN、用阿里云 DNS 或 DNSPod API 申请通配符证书、微信小程序的 HTTPS 要求。没有备案或 80 端口不通时,优先看 DNS-01 验证的教程。
教程里不会出现过时做法:Let's Encrypt 已在 2025 年停止 OCSP 服务,不要再给它的证书配置 OCSP Stapling;它也从 2025 年 6 月 4 日起不再发送到期提醒邮件,证书到期需要自己监控,可以交给 ssl.sh 监控(开发中)。遇到报错,每篇都链接了报错库里对应的页面;想了解证书、证书链和 ACME 的原理,看知识库。
Web 服务器
Nginx + Certbot
用 snap 安装 Certbot,给 Nginx 申请 Let's Encrypt 免费 SSL 证书,配置 HTTP 跳转 HTTPS 并验证自动续期,适用 Ubuntu、Debian。
Apache + Certbot
用 Certbot 给 Apache httpd 2.4 申请 Let's Encrypt 免费 SSL 证书,配置 443 虚拟主机、HTTP 跳转 HTTPS 和自动续期。
Caddy 自动 HTTPS
从官方源安装 Caddy 2,写两行 Caddyfile 就能自动申请 Let's Encrypt 证书、跳转 HTTPS 并自动续期,附 DNS-01 通配符配置。
HAProxy SSL 卸载
在 HAProxy 上终止 HTTPS:合并 PEM 文件、按 SNI 加载证书目录、转发 ACME 验证请求、HTTP 跳转 HTTPS,续期后自动重载。
Tomcat SSL
在 Tomcat 10.1/11 上直接用 PEM 证书文件配置 HTTPS,开启 TLS 1.2/1.3、HTTP 跳转 HTTPS,续期后自动重启 Tomcat;附阿里云/腾讯云证书用法。
Node.js HTTPS
用 Let's Encrypt 证书运行 Node.js HTTPS 服务:https.createServer 参数、HTTP 跳转、ACME webroot、非 root 监听 443、续期后不重启热加载证书。
安装中间证书
找到正确的中间证书,按正确顺序合成完整证书链,安装到 Nginx、Apache、IIS、HAProxy、Tomcat、Node.js,并验证;附阿里云/腾讯云证书包说明。
OpenSSL 生成 CSR
用一条 OpenSSL 命令生成私钥和证书签名请求(CSR),添加 subjectAltName 多个域名,选择 RSA 2048 或 ECDSA P-256,并检查 CSR。
HTTP 跳转 HTTPS
用一次 301/308 跳转强制 HTTPS:Nginx、Apache、Caddy、IIS、宝塔和阿里云/腾讯云 CDN 写法,避免套 CDN 后无限跳转,并保证 ACME 续期不受影响。
开启 HSTS
分步添加 Strict-Transport-Security 响应头:从很短的 max-age 开始,再加 includeSubDomains,满足 preload 预加载要求,避免把用户锁在门外。
ACME 客户端与自动化
acme.sh 通配符证书
用 acme.sh 通过 DNS 服务商 API 申请 Let's Encrypt 通配符证书:安装、切换默认 CA、DNS-01 签发、安装证书并设置重载命令,附国内安装方法。
acme.sh + 阿里云/DNSPod
80 端口被封、域名未备案也能签证书:用 acme.sh 调用阿里云 DNS 或腾讯云 DNSPod API 申请 Let's Encrypt 通配符证书,安装到 Nginx 并自动续期。
Certbot + Cloudflare DNS
用 Certbot 的 certbot-dns-cloudflare 插件申请 Let's Encrypt 通配符证书:受限 API Token、凭据文件、DNS-01 签发,以及自动续期和重载。
lego DNS-01
用 lego v5 通过阿里云 DNS 或腾讯云 DNSPod 的 API 申请 Let's Encrypt 通配符证书:安装、lego run、部署钩子和每日续期定时器。
Certbot 续期钩子
Certbot 续期后自动重载服务:--deploy-hook、--pre-hook、--post-hook、renewal-hooks 目录、RENEWED_LINEAGE 变量和 certbot reconfigure 用法。
证书自动续期
为 Certbot、acme.sh、lego、Caddy、Traefik、cert-manager、win-acme、宝塔配置并检查证书自动续期:定时任务、ARI、重载钩子和监控。
Let's Encrypt 配置文件
选择 Let's Encrypt 证书配置文件(classic、45 天 tlsserver、6 天 shortlived),并在 Certbot、acme.sh、lego、Caddy、Traefik、cert-manager 中配置。
为 47 天证书做准备
应对公网证书 200、100、47 天上限和 Let's Encrypt 64、45 天默认有效期:盘点证书、消灭手动上传、ARI、域名验证和监控。
面板与 NAS
宝塔面板 SSL
在宝塔 Linux 面板为网站申请 Let's Encrypt 免费证书(文件验证或 DNS 验证)、部署自己的证书、开启强制 HTTPS,并确认计划任务自动续签。
1Panel SSL
在 1Panel v2 中创建 ACME 账户和 DNS 账户,申请 Let's Encrypt 证书(含通配符),为网站启用 HTTPS 和 HTTP 跳转,并开启自动续签。
cPanel SSL
在 cPanel 虚拟主机上用 AutoSSL(Let's Encrypt)免费签发并自动续期证书,或安装购买的证书:查看 SSL/TLS Status、排查验证失败、强制 HTTPS。
Plesk SSL
在 Plesk Obsidian 用 SSL It! 扩展申请 Let's Encrypt 免费证书,DNS 验证签通配符,开启 HTTP 跳转 HTTPS、HSTS 和自动续期,附国内用户注意事项。
群晖 NAS SSL
给群晖 NAS 配置受信任证书:DSM 自带 Let's Encrypt(需 80 端口)、synology.me DDNS,或家宽 80 端口被封时用 acme.sh 走阿里云/DNSPod DNS 验证并自动部署。
云和 CDN
阿里云 SSL 证书
在阿里云数字证书管理服务申请免费个人测试证书或付费证书:DNS/文件验证、下载 Nginx 格式证书安装到服务器,或一键部署到 CDN、SLB 等云产品。
腾讯云 SSL 证书
在腾讯云 SSL 证书控制台申请免费 DV 证书:选择自动 DNS、手动 DNS 或文件验证,下载 Nginx 格式安装到服务器,或一键部署到 CDN、负载均衡。
阿里云 CDN HTTPS
在阿里云 CDN 上开启 HTTPS:选择数字证书管理服务证书或上传证书,配置强制跳转、HSTS、TLS 版本和 HTTPS 回源,并用 acme.sh 自动更新证书。
腾讯云 CDN HTTPS
在腾讯云 CDN 上配置 HTTPS:选择腾讯云托管证书或上传自有证书,设置回源方式、强制跳转、HSTS 和 TLS 版本,并保持证书按时更新。
AWS ACM + ALB
用 AWS Certificate Manager 申请免费证书并做 DNS 验证,挂到应用负载均衡器(ALB)的 HTTPS 监听器,配置 TLS 1.3 策略和 HTTP 跳转,附 AWS 中国区差异。
Cloudflare Origin CA
创建免费的 Cloudflare Origin CA 源站证书,安装到 Nginx,把 SSL/TLS 加密模式切到 Full (strict),可选开启 Authenticated Origin Pulls,并说明中国网络的限制。
Azure App Service SSL
为 Azure App Service 自定义域名配置 HTTPS:创建免费托管证书或上传 PFX,添加 SNI SSL 绑定,开启仅 HTTPS 和 TLS 1.2,附世纪互联运营的 Azure 中国区差异。
谷歌云负载均衡 SSL
为 Google Cloud 外部应用负载均衡器配置 HTTPS:创建 Google 托管证书或用 Certificate Manager 签通配符,设置 HTTP 跳转、查看签发状态,附国内用户注意事项。
容器与平台
Docker Nginx + Certbot
用 Docker Compose 运行 Nginx 和官方 certbot/certbot 镜像:共享验证目录和证书卷、首次签发、HTTPS 配置,以及宿主机定时续期并重载 Nginx。
Traefik + Let's Encrypt
让 Traefik v3 自动申请 Let's Encrypt 证书:证书解析器、acme.json 存储、Docker 标签、HTTP 跳转 HTTPS,以及用阿里云 DNS 申请通配符证书。
cert-manager
用 Helm 安装 cert-manager,创建 Let's Encrypt 测试和生产 ClusterIssuer,为 Ingress 或 Gateway 签发证书,并排查 Order/Challenge 问题。
微信小程序 HTTPS
让微信小程序能请求你的接口:备案域名、有效证书和完整证书链、TLS 1.2 以上,在小程序后台配置 request/socket 合法域名,并排查 ssl hand shake error。
Vercel 自定义域名 SSL
Vercel 如何给自定义域名自动签 Let's Encrypt 证书:根域名 A 记录和 www CNAME 的区别、CAA 怎么写、通配符和上传证书的限制,以及常见状态和报错的处理。
Netlify 自定义域名 HTTPS
Netlify 绑定自定义域名并开启 HTTPS:75.2.60.5 和 CNAME 怎么配、CAA 放行 Let's Encrypt、通配符和自定义证书,以及 Waiting on DNS propagation 等报错处理。
GitHub Pages HTTPS
GitHub Pages 自定义域名开启 HTTPS 要加哪些记录:根域名 4 条 A 记录和 AAAA、www 的 CNAME、CAA 放行 letsencrypt.org,以及 Certificate not yet created 怎么处理。
Cloudflare Pages 自定义域名
Cloudflare Pages 绑定自定义域名并启用 HTTPS:根域名和子域名的 DNS 区别、Cloudflare 需要的 CAA 记录,以及域名一直停在 Verifying 时怎么排查。
Render 自定义域名 TLS
Render 绑定自定义域名的托管 TLS 证书:根域名和 www 的记录、216.24.57.1、CAA 放行 letsencrypt.org 和 pki.goog、通配符需要的三条 CNAME,以及常见问题处理。
Firebase Hosting 自定义域名 SSL
Firebase Hosting 绑定自定义域名并自动签发 SSL 证书:TXT 验证和 A 记录、CAA 放行 letsencrypt.org 与 pki.goog,以及 Needs setup、Pending 等状态的处理。
Fly.io 自定义域名证书
用 fly certs add 给 Fly.io 应用绑定自定义域名:A/AAAA 和 CNAME 怎么选、DNS-01 通配符、CAA 放行 Let's Encrypt、导入自有证书,以及验证卡住的排查。
Heroku ACM
Heroku Automated Certificate Management(ACM)给自定义域名自动签证书:herokudns.com 目标地址、根域名记录、CAA 放行 Let's Encrypt、ACM 状态和失败原因。
AWS Amplify 自定义域名 SSL
AWS Amplify Hosting 绑定自定义域名:托管证书和导入 ACM 证书的区别、第三方 DNS 要加的记录、CAA 放行亚马逊 CA、通配符子域名,以及 Pending Verification 的处理。
Railway 自定义域名
Railway 绑定自定义域名并自动签发 Let's Encrypt 证书:CNAME 和 TXT 两条记录、根域名怎么配、通配符、CAA,以及证书卡在 Validating Challenges 的处理。
邮件服务器
Windows
建站平台与虚拟主机
Shopify SSL
Shopify 独立站的 SSL 证书免费自动签发:阿里云、DNSPod 上的域名怎么解析,CAA 要放行哪三家 CA,SSL pending 和 SSL unavailable 怎么排查。
Squarespace SSL
Squarespace 的免费 Let's Encrypt 证书怎么生效:第三方域名加哪些 A 和 CNAME 记录,CAA 放行 letsencrypt.org,SSL Certificates Unavailable 怎么排查。
Wix SSL
Wix 自动签发 SSL 证书的前提:指向法要加的 A 和 CNAME 记录,CAA 和 DNSSEC 为什么会挡住签发,网站显示不安全时怎么排查,企业版自定义证书有哪些要求。
Webflow SSL
Webflow 自动签发 SSL 证书需要哪些解析记录:A、CNAME、_webflow TXT 怎么加,CAA 要放行哪两家 CA,域名报错和 Cloudflare 525 怎么排查。
WordPress.com HTTPS
WordPress.com 的免费 Let's Encrypt 证书一直 pending 怎么办:域名怎么接入,CAA 放行 letsencrypt.org,Domain security 里三类报错和 Provision certificate 按钮。
GoDaddy SSL
GoDaddy 的 cPanel 主机、Managed WordPress 和 Websites + Marketing 怎样免费签发证书:解析怎么配、CAA 放行谁、证书卡住怎么查、怎样强制 HTTPS。
Hostinger SSL
Hostinger 免费 Lifetime SSL 一直 Installing 或显示 Failed 怎么办:域名怎么指向、CAA 要不要删、失败状态怎么查,以及强制 HTTPS、混合内容和导入证书。
SiteGround SSL
SiteGround 的免费 Let's Encrypt 证书怎么签发:域名如何指向、CAA 放行 letsencrypt.org、SSL Manager 三种安装报错、HTTPS Enforce 和导入第三方证书。
Bluehost SSL
Bluehost 免费 SSL 显示不安全怎么修:域名怎么指向 Bluehost、CAA 放行哪个值、怎样用 Run AutoSSL 重新签发,以及怎样手动强制 HTTPS 和上传证书。
Namecheap 主机 SSL
Namecheap 共享主机的免费 SSL 怎么签发和安装、要用哪组 DNS 服务器、换成 SSL.com 之后 CAA 怎么写、插件里 In progress 卡住怎么办,以及强制 HTTPS 和混合内容的处理。
常见问题
该从哪篇教程开始?
看是谁在 443 端口上处理 HTTPS:自己装的 Nginx/Apache 就看对应的服务器教程;用宝塔、1Panel 就看面板教程;网站前面套了阿里云或腾讯云 CDN、负载均衡,就先在云上配置 HTTPS,再处理源站。
服务器 80 端口被封、没法做 HTTP 验证怎么办?
改用 DNS-01 验证。国内很多家庭宽带和部分云主机的 80/443 端口不通,或者域名还没备案无法开放网站访问;DNS-01 通过阿里云 DNS、DNSPod 等服务商的 API 自动添加 TXT 记录,不需要开放任何端口,还能申请通配符证书。
证书有效期越来越短,这些教程还适用吗?
适用,每篇教程都有“自动续期”一节。公网证书最长有效期 2026 年 3 月 15 日起为 200 天,2027 年 3 月 15 日起为 100 天,2029 年 3 月 15 日起为 47 天;Let's Encrypt 默认证书 2027 年 2 月 10 日起改为 64 天。手动续期容易漏,必须自动化。