阿里云账号!!如何在阿里云服务器上配置免费的SSL证书(Let's Encrypt)实现HTTPS?
在如今的互联网世界里,如果你的网站还在用旧时代的 http://(明文传输),不仅会在浏览器的地址栏被无情地标记上红色的“不安全”警告,还会被 Google、百度等搜索引擎在排名上狠狠地限流。更糟糕的是,黑产可以轻而易举地在传输途中劫持你的网页,往里面塞满恶心的牛皮癣广告。
要解决这个问题,唯一的办法就是升级到 HTTPS。而升级 HTTPS,核心就是需要一张 SSL 安全证书。
很多新客和创业老板一听到 SSL 证书,第一反应是:“这玩意儿去大厂买,一年得大几百甚至上千块,太贵了。”阿里云账号!
今天这篇文章,我就用纯大白话的真人带路风格,手把手带你在阿里云服务器上,利用全球最良心的免费证书颁发机构 Let's Encrypt,配合自动化神器 Certbot,实现“一键申请、自动续期、终身免费”的 HTTPS 终极实操。
核心原理:为什么选择 Let's Encrypt 和 Certbot?
- Let's Encrypt:这是一个由全球各大互联网巨头(Mozilla、思科、谷歌等)联合赞助的公益组织,专门免费发放正规、受所有浏览器信任的 SSL 证书。
- 终身免费的代价:唯一的“小缺点”是每次申请的证书有效期只有 90 天。
- 自动化神器 Certbot:为了不让我们每三个月手动折腾一次,官方推出了 Certbot 命令行工具。它不仅能一键帮我们申请好证书,还能在后台死死盯住到期时间,在证书快过期时自动续期。只要服务器不倒,证书就永远免费、永不过期。
准备工作:出门前的安全检查
在敲命令之前,请务必确保以下三件事已经办妥,否则后面百分百会“鬼打墙”:
- 域名已经成功解析到你的阿里云服务器 IP:如果你在浏览器里打你的域名(如 www.yourname.com)还无法访问你服务器的默认网页,请先去搞定域名解析。
- 放行阿里云安全组的 443 端口:HTTPS 走的是 443 端口(普通 HTTP 走 80 端口)。实操:登录阿里云控制台 -> 找到你的 ECS 实例 -> 点击 [安全组] -> [配置规则] -> 在入方向放行 443 端口。如果没放行,证书装得再好,外网也无法安全连接。
- 服务器上已经装好了 Web 服务(以 Nginx 为例):并且你的 Nginx 已经配置好了基础的域名访问。
阿里云账号!下面,我们正式进入实操命令阶段。我们以目前国内最主流的 Ubuntu 和 CentOS/Alibaba Cloud Linux 两个系统为例。
第一步:在服务器上安装 Certbot 工具
我们需要先把这位“自动化管家”请进服务器。
如果你的服务器系统是 Ubuntu:
Ubuntu 自带的包管理器很方便,直接运行以下命令:
Bash
# 更新软件源
sudo apt update
# 安装 certbot 以及针对 nginx 的专用插件
sudo apt install certbot python3-certbot-nginx -y
如果你的服务器系统是 CentOS / Alibaba Cloud Linux:
CentOS 需要先开启 EPEL 扩展源,才能找到 Certbot。
Bash
# 安装 EPEL 扩展源
sudo yum install epel-release -y
# 安装 certbot 和 nginx 插件
sudo yum install certbot python3-certbot-nginx -y
第二步:一行命令,自动申请并配置 SSL 证书
Certbot 最牛的地方在于,它有一个“傻瓜式”的自动扫描模式。它会自动去读你服务器里 Nginx 的配置文件,找出你绑了什么域名,然后自动帮你去向 Let's Encrypt 申请证书。
请在终端输入以下这行无敌的命令:
Bash
sudo certbot --nginx
执行后,终端会弹出交互式提示,别慌,跟着我的真人提示一步步输入:
- 输入邮箱 (Enter email address):输入一个你的常用邮箱。这个邮箱非常重要,如果哪天自动续期脚本不小心挂了,Let's Encrypt 会在证书到期前 20 天发邮件提醒你救火。
- 同意服务条款 (Terms of Service):直接输入 A(Agree)回车。
- 是否接受赞助商邮件 (Would you be willing to share your email...):输入 N(No)回车,免得天天收到垃圾邮件。
- 选择要开通 HTTPS 的域名:这时候,Certbot 会神奇地把你 Nginx 里配置的所有域名列出来(比如 1: yourname.com, 2: www.yourname.com)。怎么选:如果你想把这两个域名都加上 HTTPS,直接敲回车(默认全选),或者输入对应数字用逗号隔开。
敲下回车后,屏幕会疯狂闪过一堆代码(这是 Certbot 在和 Let's Encrypt 的服务器进行“人机握手验证”)。
稍等 5 到 10 秒钟,当你在屏幕最后看到大大的 Congratulations! You have successfully enabled HTTPS... 时,说明证书已经成功下发!
更绝的是,Certbot 已经自动修改了你的 Nginx 配置文件,把繁琐的密钥路径、443端口监听、SSL 加密算法全部自动填好了。
第三步:终极验证
这时候,你可以合上黑色命令行,打开你的电脑浏览器。
在地址栏输入你不带 https 的域名(例如:http://www.yourname.com),你会发现系统会自动帮你跳转到带有安全锁的 ht
tps://www.yourname.com。
点击域名左侧那颗精美的小挂锁,查看证书详情,你会看到颁发机构明确写着:Let's Encrypt。至此,你的阿里云服务器已经完美穿上了 HTTPS 的防弹衣!
第四步:高枕无忧——配置自动续期定时任务
前面说了,这个证书只有 90 天有效期。虽然 Certbot 在安装时通常会默认在系统里加一个定时任务,但为了确保万无一失,我们必须手动验证并测试一下这个“续期死循环”是否工作正常。
1. 模拟续期测试(不实际演练,只走流程)
输入以下命令,让 Certbot 模拟一次证书过期后的续期操作:
Bash
sudo certbot renew --dry-run
如果屏幕最后显示 Your certificates are not due for renewal yet, but simulated successfully 或者没有任何报错提示(Success),就说明自动续期的内核是完全健康的。
2. 强行保险:添加 Linux Cron 定时任务
为了防止由于系统环境变动导致默认的自动续期挂掉,业内老司机通常会自己在 Linux 的定时任务(Crontab)里加上一把双保险。阿里云账号!
输入以下命令打开系统定时任务编辑器:
Bash
sudo crontab -e
在文件的最底部,另起一行,把下面这行命令粘贴进去:
Plaintext
0 3 * * * certbot renew --post-hook "systemctl reload nginx"
- 这段代码的意思是:让服务器每天凌晨 3:00 整,自动在后台悄悄执行一次 certbot renew 命令。Certbot 非常聪明,如果发现证书还没到期(剩余时间大于 30 天),它什么都不会干;一旦发现证书距离过期不足 30 天了,它就会自动在后台把新证书申请下来,并通过 --post-hook 顺便让 Nginx 重新加载(Reload)一下配置,无缝应用新证书。
保存并退出。有了这行命令,你就可以彻底把“SSL 证书过期”这件事从你的大脑记忆区里删掉了。
结语与避坑总结
看完了全流程,你是不是发现,其实在阿里云上搞定免费 HTTPS 也就不到 5 分钟的事?
最后总结两个新手最容易踩的暗坑:
- 别漏了二级域名:如果你既想让 yourname.com 变安全,又想让 api.yourname.com 变安全,在申请证书前,确保这些二级域名的 Nginx server_name 都配置妥当,并且阿里云解析也加好了。
- 禁止在有宝塔面板的服务器上混用此命令:如果你给阿里云服务器装了“宝塔面板”等可视化工具,请直接在面板的图形界面里点击“申请 Let's Encrypt 证书”,不要去命令行里跑 Certbot。因为可视化面板有它自己的一套 Nginx 配置规则,用原生命令去改会把面板的配置文件直接改崩。
现在,你的网站不仅安全防劫持,还能在各大搜索引擎眼里拿到更高的权重分,赶紧去把你的免费小挂锁挂起来吧!

