有些學校伺服器因為長期遭到網路爬蟲攻擊洗流量,乾脆由上層路由防火牆GeoIP鎖掉台灣以外的IP,這樣是能立刻減少流量及0/1消耗,因為國外的爬蟲都被擋掉了,但同樣副作用也導致Let's Encrypt的 SSL憑證更新失敗,因為國外的IP都被鎖了,測試方式很簡單,只要於下列網址輸入需要模擬Let's Encrypt更新的網站,即可測試
Let's Debug:https://letsdebug.net/
如果返回紅字,那就是IP被鎖,上層 GeoIP 限制會讓驗證節點直接超時(Timeout during connect),連80port都連不到,綠字表示沒問題,黃字雖有問題仍可更新
解決無法更新方案就只能改用DNS‑01驗證,方法如下:
步驟 1:進入伺服器並執行 Certbot
sudo certbot certonly --manual --preferred-challenges dns -d yses.tyc.edu.tw
步驟 2:Certbot 會顯示 TXT 記錄資訊
它會出現類似這樣的提示:
Please deploy a DNS TXT record under the name:
_acme-challenge.example.com.
with the following value:
s9pRq9l5R9Xg1wKQyEjQ0i_Z4Hh3V9cQeH6jLn2Qzj8
Before continuing, verify the TXT record has been deployed.
將以下綠字及紅字複製下來:
記錄名稱:_acme-challenge.example.com
記錄值:s9pRq9l5R9Xg1wKQyEjQ0i_Z4Hh3V9cQeH6jLn2Qzj8
備註:終端機上只需要把滑鼠左鍵長壓拖曳後放開即可自動複製,不需要用鍵盤的CTRL+C
步驟 3:在 Infoblox或是網址管理介面新增 TXT 記錄
登入 Infoblox 或網址管理介面(外網段)
找到 網址 對應的 DNS Zone
新增 TXT 記錄:
Name:_acme-challenge(Infoblox 會自動加上 .example.com,不需要自己寫完整)
Text / Value:s9pRq9l5R9Xg1wKQyEjQ0i_Z4Hh3V9cQeH6jLn2Qzj8 (Certbot 顯示的那串隨機字串)
儲存變更
如果再用Let's Debug:https://letsdebug.net/ 跑一遍,原本紅色的警示說明會變綠色(如果還是紅色就表示 TXT 記錄新增失敗)
步驟 4:回到 終端機 Certbot 繼續
當你確認 TXT 記錄建立生效後,
回到剛剛終端機 Certbot 的畫面,按 Enter 繼續。
Certbot 會顯示:Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/yses.tyc.edu.tw/fullchain.pem
步驟 5:部署新憑證
sudo systemctl reload apache2
留言
張貼留言