Let'sencrypt.sh 丟擲異常: Response: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)>
阿新 • • 發佈:2018-11-08
起因
今天網站的SSL證書過期了,打算重新申請,執行 Let'sencrypt.sh 的時候丟擲了這麼個異常.
一番搜尋,發現居然找不到直接的答案.沒有直接的答案就只能通過間接的答案來解決了.
希望我的解決過程能成為直接答案,幫助同樣遇到這問題的人.
經過
經過搜尋後發現這是Python下的一個異常.
引用這個文章的一句話:
Python 升級到 2.7.9 之後引入了一個新特性,當使用urllib.urlopen開啟一個 https 連結時,會驗證一次 SSL 證書。而當目標網站使用的是自簽名的證書時就會丟擲此異常。
解決方案很明瞭.我們看報錯資訊,有提到一個python檔案,修改它:
vim /tmp/acme_tiny.py
給它加上這麼兩行:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
加在這;
修改後儲存,別急著執行,還沒完.
這個檔案是 Let'sencrypt.sh 自動下載的,如果我們就這麼執行Let'sencrypt.sh,會下載一個新的,替換掉.這樣我們的修改就沒了.
於是我們還要開啟Let'sencrypt.sh,進行修改,去掉對這個檔案的下載更新:
在第52行前面加個"#":
結果
全部修改好後,執行測試:
成功!