让你的网站从 HTTP 升级到 HTTPS零成本全自动三分钟搞定。一、为什么你需要 Let’s Encrypt2026 年了如果你的网站还在跑 HTTP浏览器地址栏那个刺眼的“不安全”警告正在劝退你的用户。Let’s Encrypt是由互联网安全研究小组ISRG提供的免费、自动化、开放的证书颁发机构CA。它的核心优势非常直接特性说明 完全免费无需支付任何费用⏱ 有效期 90 天支持无限次续期 全程自动化申请、安装、续期一条龙 广泛兼容所有主流浏览器和操作系统均信任一句话不花钱就能让网站开启 HTTPS 加密。二、环境准备动手前必看在开始之前确认以下条件已满足✅ 一个有效域名且 DNS A 记录已指向服务器公网 IP✅ 服务器拥有root 或 sudo 权限✅80 和 443 端口已开放能从公网访问✅ 系统时间准确date命令检查时间不准会导致验证失败✅ 已安装 Nginx 或 Apache且能通过 HTTP 正常访问网站⚠️ 如果你用的是防火墙ufw/iptables记得先放行端口sudoufw allow80/tcpsudoufw allow443/tcp三、安装 Certbot官方推荐工具Certbot 是 Let’s Encrypt 官方推荐的 ACME 协议客户端支持自动化证书管理。Ubuntu / Debiansudoaptupdatesudoaptinstall-ycertbot python3-certbot-nginxCentOS / RHEL 8sudodnfinstall-yepel-releasesudodnfinstall-ycertbot python3-certbot-nginx安装完成后建立符号链接便于直接调用sudoln-s/usr/bin/certbot /usr/bin/certbot四、申请并安装证书核心步骤方式一一键自动配置最简单强烈推荐如果你用的是 Nginx一条命令搞定一切sudocertbot--nginx-dexample.com-dwww.example.com这条命令做了什么自动申请example.com和www.example.com的 SAN 证书自动修改 Nginx 配置启用 HTTPS自动设置 HTTP → HTTPS 301 重定向执行后按提示输入邮箱、同意服务条款即可全程不用手动改任何配置文件。方式二Webroot 模式适合已有 Nginx 服务在运行如果不想暂停 Nginx用 webroot 模式sudocertbot certonly--webroot\-w/usr/share/nginx/html\-dexample.com-dwww.example.com\-myouremail.com --agree-tos参数含义certonly仅申请证书不自动配置服务器--webroot -w指定网站根目录Let’s Encrypt 会在此验证域名所有权-d申请的域名可多次添加实现多域名证书--agree-tos自动同意服务条款证书生成后默认存放在/etc/letsencrypt/live/example.com/ ├── fullchain.pem # 证书链包含中间证书必须用这个 └── privkey.pem # 私钥方式三Standalone 模式需暂停 Nginxsudosystemctl stop nginxsudocertbot certonly--standalone-dexample.comsudosystemctl start nginx五、配置 Nginx 启用 HTTPS如果你用的是方式二或方式三手动模式需要自己修改 Nginx 配置server { listen 443 ssl; server_name example.com www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { root /usr/share/nginx/html; index index.html; } } # HTTP 重定向到 HTTPS server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; }验证配置并重载sudonginx-tsudonginx-sreload六、通配符证书*.example.com如果你需要一张证书覆盖所有子域名api.example.com、mail.example.com等需要用DNS 验证# 安装 DNS 插件以 Cloudflare 为例sudoaptinstallpython3-certbot-dns-cloudflare# 申请通配符证书sudocertbot certonly\--dns-cloudflare\--dns-cloudflare-credentials ~/.secrets/cloudflare.ini\-d*.example.com\-dexample.com~/.secrets/cloudflare.ini内容dns_cloudflare_email youremail.com dns_cloudflare_api_key your_api_key七、自动续期必须配置Let’s Encrypt 证书只有90 天有效期不续期就会失效。好消息是 Certbot 自带续期功能。测试续期是否正常sudocertbot renew --dry-run如果输出Congratulations, all renewals succeeded说明续期配置正确。配置定时任务Certbot 安装时通常会自动添加 cron 任务。如果没有手动添加sudocrontab-e加入0 3 * * 1,15 /usr/bin/certbot renew --quiet --deploy-hook nginx -s reload每月 1 日和 15 日凌晨 3 点自动检查并续期续期成功后自动重载 Nginx。八、宝塔面板用户零命令行方案如果你用的是宝塔面板操作更简单登录宝塔面板 → 点击左侧“网站”选择目标网站 → 点击“设置”→ 切换到“SSL”选项卡点击“Let’s Encrypt”→ 选择域名 → 点击“申请”申请成功后开启“强制 HTTPS”全程鼠标操作不用碰命令行。九、常见问题排查问题原因解决方案failed to connect to port 8080 端口被占用暂停 Nginx或改用--webroot模式浏览器提示不安全证书链不完整确保用fullchain.pem而非cert.pem续期失败cron 未执行或权限不足检查sudo crontab -l确认 certbot 路径正确DNS 验证失败TXT 记录未生效等待 DNS 传播dig _acme-challenge.example.com验证十、总结步骤命令耗时安装 Certbotapt install certbot python3-certbot-nginx30 秒申请证书certbot --nginx -d example.com1 分钟配置续期crontab -e添加定时任务10 秒总计—不到 3 分钟Let’s Encrypt 的核心理念就是消除 HTTPS 的成本门槛让每个网站都能默认加密。2026 年了别再让你的用户看到那个红色的不安全了。现在就去给你的网站加上那把小锁 。
SSL 免费证书安装(Let‘s Encrypt)
让你的网站从 HTTP 升级到 HTTPS零成本全自动三分钟搞定。一、为什么你需要 Let’s Encrypt2026 年了如果你的网站还在跑 HTTP浏览器地址栏那个刺眼的“不安全”警告正在劝退你的用户。Let’s Encrypt是由互联网安全研究小组ISRG提供的免费、自动化、开放的证书颁发机构CA。它的核心优势非常直接特性说明 完全免费无需支付任何费用⏱ 有效期 90 天支持无限次续期 全程自动化申请、安装、续期一条龙 广泛兼容所有主流浏览器和操作系统均信任一句话不花钱就能让网站开启 HTTPS 加密。二、环境准备动手前必看在开始之前确认以下条件已满足✅ 一个有效域名且 DNS A 记录已指向服务器公网 IP✅ 服务器拥有root 或 sudo 权限✅80 和 443 端口已开放能从公网访问✅ 系统时间准确date命令检查时间不准会导致验证失败✅ 已安装 Nginx 或 Apache且能通过 HTTP 正常访问网站⚠️ 如果你用的是防火墙ufw/iptables记得先放行端口sudoufw allow80/tcpsudoufw allow443/tcp三、安装 Certbot官方推荐工具Certbot 是 Let’s Encrypt 官方推荐的 ACME 协议客户端支持自动化证书管理。Ubuntu / Debiansudoaptupdatesudoaptinstall-ycertbot python3-certbot-nginxCentOS / RHEL 8sudodnfinstall-yepel-releasesudodnfinstall-ycertbot python3-certbot-nginx安装完成后建立符号链接便于直接调用sudoln-s/usr/bin/certbot /usr/bin/certbot四、申请并安装证书核心步骤方式一一键自动配置最简单强烈推荐如果你用的是 Nginx一条命令搞定一切sudocertbot--nginx-dexample.com-dwww.example.com这条命令做了什么自动申请example.com和www.example.com的 SAN 证书自动修改 Nginx 配置启用 HTTPS自动设置 HTTP → HTTPS 301 重定向执行后按提示输入邮箱、同意服务条款即可全程不用手动改任何配置文件。方式二Webroot 模式适合已有 Nginx 服务在运行如果不想暂停 Nginx用 webroot 模式sudocertbot certonly--webroot\-w/usr/share/nginx/html\-dexample.com-dwww.example.com\-myouremail.com --agree-tos参数含义certonly仅申请证书不自动配置服务器--webroot -w指定网站根目录Let’s Encrypt 会在此验证域名所有权-d申请的域名可多次添加实现多域名证书--agree-tos自动同意服务条款证书生成后默认存放在/etc/letsencrypt/live/example.com/ ├── fullchain.pem # 证书链包含中间证书必须用这个 └── privkey.pem # 私钥方式三Standalone 模式需暂停 Nginxsudosystemctl stop nginxsudocertbot certonly--standalone-dexample.comsudosystemctl start nginx五、配置 Nginx 启用 HTTPS如果你用的是方式二或方式三手动模式需要自己修改 Nginx 配置server { listen 443 ssl; server_name example.com www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { root /usr/share/nginx/html; index index.html; } } # HTTP 重定向到 HTTPS server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; }验证配置并重载sudonginx-tsudonginx-sreload六、通配符证书*.example.com如果你需要一张证书覆盖所有子域名api.example.com、mail.example.com等需要用DNS 验证# 安装 DNS 插件以 Cloudflare 为例sudoaptinstallpython3-certbot-dns-cloudflare# 申请通配符证书sudocertbot certonly\--dns-cloudflare\--dns-cloudflare-credentials ~/.secrets/cloudflare.ini\-d*.example.com\-dexample.com~/.secrets/cloudflare.ini内容dns_cloudflare_email youremail.com dns_cloudflare_api_key your_api_key七、自动续期必须配置Let’s Encrypt 证书只有90 天有效期不续期就会失效。好消息是 Certbot 自带续期功能。测试续期是否正常sudocertbot renew --dry-run如果输出Congratulations, all renewals succeeded说明续期配置正确。配置定时任务Certbot 安装时通常会自动添加 cron 任务。如果没有手动添加sudocrontab-e加入0 3 * * 1,15 /usr/bin/certbot renew --quiet --deploy-hook nginx -s reload每月 1 日和 15 日凌晨 3 点自动检查并续期续期成功后自动重载 Nginx。八、宝塔面板用户零命令行方案如果你用的是宝塔面板操作更简单登录宝塔面板 → 点击左侧“网站”选择目标网站 → 点击“设置”→ 切换到“SSL”选项卡点击“Let’s Encrypt”→ 选择域名 → 点击“申请”申请成功后开启“强制 HTTPS”全程鼠标操作不用碰命令行。九、常见问题排查问题原因解决方案failed to connect to port 8080 端口被占用暂停 Nginx或改用--webroot模式浏览器提示不安全证书链不完整确保用fullchain.pem而非cert.pem续期失败cron 未执行或权限不足检查sudo crontab -l确认 certbot 路径正确DNS 验证失败TXT 记录未生效等待 DNS 传播dig _acme-challenge.example.com验证十、总结步骤命令耗时安装 Certbotapt install certbot python3-certbot-nginx30 秒申请证书certbot --nginx -d example.com1 分钟配置续期crontab -e添加定时任务10 秒总计—不到 3 分钟Let’s Encrypt 的核心理念就是消除 HTTPS 的成本门槛让每个网站都能默认加密。2026 年了别再让你的用户看到那个红色的不安全了。现在就去给你的网站加上那把小锁 。