阿里雲賬號!! 如何在阿里雲服務器上配置免費的SSL證書(Let's Encrypt)實現HTTPS?
在如今的互聯網世界裡,如果你的網站還在用舊時代的 ht
Tp://
(明文傳輸),不僅會在瀏覽器的地址欄被無情地標記上紅色的「不安全」警告,還會被 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 已經配置好了基礎的域名訪問。
阿里雲
賬號!
下面,我們正式進入實操命令階段。 我們以目前國內最主流的
烏邦圖
和
CentOS/Alibaba Cloud Linux
兩個系統為例。
第一步:在服務器上安裝 Certbot 工具
我們需要先把這位「自動化管家」請進服務器。
如果你的服務器系統是 Ubuntu:
Ubuntu 自帶的包管理器很方便,直接運行以下命令:
貝殼腳本
# 更新軟件源
Sudo apt update
# 安裝 certbot 以及針對 nginx 的專用插件
Sudo apt install certbot python3-certbot-nginx -y
如果你的服務器系統是 CentOS / Alibaba Cloud Linux:
CentOS 需要先開啟 EPEL 擴展源,才能找到 Certbot。
貝殼腳本
# 安裝 EPEL 擴展源
Sudo yum install epel-release -y
# 安裝 certbot 和 nginx 插件
Sudo yum install certbot python3-certbot-nginx -y
第二步:一行命令,自動申請並配置 SSL 證書
Certbot 最牛的地方在於,它有一個「傻瓜式」的自動掃描模式。 它會自動去讀你服務器里 Nginx 的配置文件,找出你綁了什麼域名,然後自動幫你去向 Let's Encrypt 申請證書。
請在終端輸入以下這行無敵的命令:
貝殼腳本
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 的域名(例如:
ht
Tp://www.yourname.com),你會發現系統會自動幫你跳轉到帶有安全鎖的 ht
Tps://www.yourname.com
。
點擊域名左側那顆精美的小掛鎖,查看證書詳情,你會看到頒發機構明確寫著:
讓我們加密
。 至此,你的阿里雲服務器已經完美穿上了 HTTPS 的防彈衣!
第四步:高枕無憂--配置自動續期定時任務
前面說了,這個證書只有 90 天有效期。 雖然 Certbot 在安裝時通常會默認在系統里加一個定時任務,但為了確保萬無一失,我們必須手動驗證並測試一下這個「續期死循環」是否工作正常。
1. 模擬續期測試(不實際演練,只走流程)
輸入以下命令,讓 Certbot 模擬一次證書過期後的續期操作:
貝殼腳本
Sudo certbot renew --dry-run
如果屏幕最後顯示
Your certificates are not due for renewal yet, but simulated successfully
或者沒有任何報錯提示(Success),就說明自動續期的內核是完全健康的。
2. 強行保險:添加 Linux Cron 定時任務
為了防止由於系統環境變動導致默認的自動續期掛掉,業內老司機通常會自己在 Linux 的定時任務(Crontab)里加上一把雙保險。
阿里雲帳號!
輸入以下命令打開系統定時任務編輯器:
貝殼腳本
Sudo crontab -
e
在文件的最底部,另起一行,把下面這行命令粘貼進去:
純文字
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 配置規則,用原生命令去改會把面板的配置文件直接改崩。
現在,你的網站不僅安全防劫持,還能在各大搜索引擎眼裡拿到更高的權重分,趕緊去把你的免費小掛鎖掛起來吧!
阿里雲帳號!
