)
作者12年OTA公司资深程序员适合人群个人站长、全栈开发者、DevOps初学者 引言为什么你的网站必须上 HTTPS在如今的互联网环境中HTTPS 早已不是“可选项”而是网站的“标配”数据安全保障用户数据传输安全防止中间人攻击。信任背书浏览器地址栏的“小绿锁”能显著提升用户信任度。SEO 优化搜索引擎如 Google、百度对 HTTPS 站点有排名加权。合规要求国内域名备案及小程序开发均强制要求 HTTPS。对于个人站长或小型项目我们完全没必要花冤枉钱买商业证书。Let’s Encrypt提供的免费证书配合Certbot工具不仅能实现全自动申请还能自动续期彻底解决“每3个月手动换证书”的烦恼。本文基于腾讯云 Ubuntu 22.04 LTS Nginx环境带你从零开始避开所有坑一次性搞定 HTTPS 自动化部署。 一、市面上有哪些靠谱的免费 SSL 证书在开始实操前我们先盘点一下主流方案方便你根据需求选择证书品牌有效期自动续期特点推荐指数Lets Encrypt90天✅支持全球最流行开源免费工具链成熟Certbot⭐⭐⭐⭐⭐ZeroSSL90天⚠️ 需配置提供 Web 界面管理兼容性好⭐⭐⭐云厂商免费版3个月❌ 不支持申请简单但需手动下载替换易过期⭐⭐Cloudflare SSL永久✅ 自动CDN 边缘加密无需在源站配置⭐⭐⭐⭐Buypass Go SSL180天✅ 支持挪威 CA 颁发有效期较长⭐⭐⭐ 为什么本文首选 Lets Encrypt虽然腾讯云控制台也提供免费证书但必须手动续期。一旦忘记网站就会报“不安全”。而 Lets Encrypt 配合 Certbot 可以实现全自动静默续期真正做到了“一次配置终身无忧”。云厂商免费版的SSL证书,对于负载均衡和对象存储COS是可以一键托管,自动续期,但是对于Linux服务器,还是需要单独下载证书,上传到服务器上️ 二、前期准备3个核心条件服务器腾讯云 Ubuntu 服务器22.04 LTS已安装 Nginx。域名已完成 ICP 备案国内服务器必需且解析指向服务器公网 IP。权限拥有root或sudo权限且服务器能正常访问外网。 三、核心操作流程分步实操Step 1: 更新系统软件包确保后续安装的工具是最新版本避免兼容性问题sudo apt update sudo apt upgrade -yStep 2: 安装 Certbot 及 Nginx 插件Certbot 是官方推荐的自动化工具。⚠️ 踩坑预警包名变了很多旧教程会教你运行sudo apt install python-certbot-nginx但在 Ubuntu 20.04/22.04 上这会报错因为 Python 默认版本已升级为 Python3。✅ 正确命令请直接复制sudoaptinstall certbot python3-certbot-nginx -y安装完成后输入certbot --version看到版本号即表示成功。Step 3: 一键申请并配置证书Certbot 最强大的地方在于它能自动修改 Nginx 配置文件。执行以下命令sudo certbot --nginx-d yourdomain.com -d www.yourdomain.com(请将yourdomain.com替换为你的实际域名)交互过程说明输入邮箱用于接收紧急通知。同意服务条款输入Y。选择是否强制跳转 HTTPS强烈建议选择 2Redirect将所有 HTTP 请求自动转为 HTTPS。等待片刻出现Congratulations!提示即表示成功。证书文件默认存储在/etc/letsencrypt/live/你的域名/目录下。Step 4: 放行端口双重保险如果证书申请成功但浏览器无法访问通常是端口没开。你需要检查两层防火墙1. 腾讯云安全组外部防线登录腾讯云控制台 - 云服务器 - 安全组 - 入站规则协议端口TCP:80,443来源0.0.0.0/0策略允许2. Ubuntu UFW 防火墙内部防线在终端执行sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reloadStep 5: 验证与自动续期测试浏览器验证访问https://你的域名.com查看是否有“小绿锁”。续期模拟测试Lets Encrypt 证书有效期为 90 天Certbot 会自动续期。你可以运行以下命令模拟测试sudo certbot renew --dry-run若输出Congratulations, all simulated renewals succeeded.说明自动续期功能完美运行。❓ 四、实战避坑指南常见问题 QAQ1: 提示 Could not bind to port 80 怎么办原因80 端口被其他程序如 Apache 或另一个 Nginx 进程占用了。解决停止占用端口的服务或者先临时关闭 Nginx (sudo systemctl stop nginx)申请完证书后再启动。Q2: 浏览器显示“不安全”或连接超时排查顺序检查腾讯云安全组是否放行了 443 端口。检查 UFW 防火墙状态 (sudo ufw status)。检查 Nginx 配置是否正确 (sudo nginx -t)。Q3: 自动续期失败了怎么办解决查看日志定位原因sudocat /var/log/letsencrypt/letsencrypt.log通常是因为 80 端口在续期那一刻被占用或者服务器网络无法访问 Lets Encrypt 的验证服务器。 五、总结与建议对于腾讯云 Ubuntu 用户Lets Encrypt Certbot是目前性价比最高、维护成本最低的 HTTPS 方案。核心要点回顾安装包名要用python3-certbot-nginx。记得在腾讯云控制台和系统内部同时放行 80/443 端口。务必运行--dry-run确认自动续期功能正常。写在最后如果你也是个人开发者或站长建议花 10 分钟完成这个配置从此告别半夜收到“证书即将过期”的焦虑邮件。觉得有用请点个「在看」或「转发」让更多开发者少走弯路如果你觉得这篇文章有帮助欢迎分享给更多开发者✨