#Python #伺服器架設 #SSL申請 #ZeroSSL #
這篇文章主要紀錄一下,在製作地址轉經緯度工具時遇到由於伺服器沒有採用https(SSL認證),造成瀏覽器端無法正確發送請求進行地址轉換,同時我伺服器ip並沒有額外申請網域進行架設,爬文後找到ZeroSSL免費提供90天的SSL憑證同時可以接受網域以及純IP的申請,以下簡單介紹申請安裝流程
文章目錄
[伺服器架設教學]免費SSL申請安裝教學-ZeroSSL(Apache示範安裝)
SSL是一種加密技術,可以保護你的網站和訪客之間的敏感資料,例如密碼、信用卡號等。有了SSL證書,你的網站將使用HTTPS協定,而不是HTTP協定,這樣可以提高你的網站的信任度和排名。
ZeroSSL是一個提供免費申請SSL的平台,它使用Let’s Encrypt作為證書發行機構。ZeroSSL的優點是它提供了一個簡單易用的網頁介面,讓你可以在幾分鐘內申請和安裝SSL證書。ZeroSSL支援多種伺服器和平台,例如Apache、Nginx、WordPress等。在本文中,我將以Apache伺服器為例,展示如何使用ZeroSSL申請和安裝SSL證書。
步驟一:註冊ZeroSSL帳號
要使用ZeroSSL,根據以下流程先註冊一個帳號。
![註冊ZeroSSL帳號](https://i0.wp.com/www.spatialgeolab.com/wp-content/uploads/2023/10/image.png?resize=411%2C245&ssl=1)
![註冊ZeroSSL帳號](https://i0.wp.com/www.spatialgeolab.com/wp-content/uploads/2023/10/image-1.png?resize=604%2C679&ssl=1)
步驟二:申請SSL證書
登入後可以在狀態面板中看到剩餘可申請的SSL數量,點選「New Certificate」可進入申請頁面,免費方案下只能申請90天的SSL憑證,如果要申請1年期的需要購買進階版會員
![ZeroSSL](https://i0.wp.com/www.spatialgeolab.com/wp-content/uploads/2023/10/image-2.png?resize=900%2C643&ssl=1)
點選「New Certificate」可進入申請頁面後,可以在下方輸入「網域名稱」、或是純IP進行認證申請,這邊以純IP進行示範,點選Next Step後選擇90天期進行申請。
![輸入網域名稱或是IP位置](https://i0.wp.com/www.spatialgeolab.com/wp-content/uploads/2023/10/image-3.png?resize=900%2C717&ssl=1)
![申請90天SSL](https://i0.wp.com/www.spatialgeolab.com/wp-content/uploads/2023/10/image-4.png?resize=900%2C570&ssl=1)
依序點選下一步,之後會來到選擇方案選項,如果是選擇90天期的SSL,則可以選擇免費方案,如果選擇1年期則看不到免費方案選項
方案選擇
接下來要進行網站驗證流程,主要可分為「DNS」驗證以及「HTTP File Upload」驗證,這邊建議如果採用純IP形式的話,可以直接下載驗證檔到指定的路徑下進行驗證,筆者後端採用Python-flask框架,這邊提供我驗證用的程式碼供參考,驗證過後會跳出SSL憑證下載頁面。
![SSL網站驗證程序](https://i0.wp.com/www.spatialgeolab.com/wp-content/uploads/2023/10/image-6.png?resize=900%2C663&ssl=1)
#透過設定flask-route回傳驗證檔txt進行驗證
@app.route('/.well-known/pki-validation/121AD711F15349C2247DE97F1C7911E3.txt')
def txt():
base_dir = os.path.dirname(__file__)
resp = make_response(open(os.path.join(base_dir,'121AD711F15349C2247DE97F1C7911E3.txt')).read())
resp.headers["Content-type"]="text/plan;charset=UTF-8"
return resp
步驟三:安裝SSL證書
當你網域都通過驗證後,就可以下載SSL證書了,這邊可以選擇採用的伺服器種類,以我採用的Apache為例。ZeroSSL會提供三個檔案:certificate.crt、private.key、ca_bundle.crt。這三個檔案儲存到你的伺服器中。
![](https://i0.wp.com/www.spatialgeolab.com/wp-content/uploads/2023/10/image-7.png?resize=118%2C86&ssl=1)
接下來,需要配置Apache伺服器,讓它使用這三個檔案來啟用HTTPS協定。你需要編輯你的Apache設定檔,這邊我們找到以下路徑的「Apache24\conf\httpd.conf」,這邊針對httpd.conf進行配置。
#註釋掉以下指令-透過#
#Include conf/extra/httpd-ssl.conf
#Include conf/extra/httpd-ahssl.conf
#找到<VirtualHost>內容添加以下指令即可啟用SSL
SSLEngine on
SSLCertificateFile "你的路徑/certificate.crt"
SSLCertificateKeyFile "你的路徑\private.key"
SSLCertificateChainFile "你的路徑\ca_bundle.crt"
步驟四:確認是否啟用SSL憑證
接下來透過下圖紅框,可以檢測我們的網站是否已經啟用了SSL憑證開啟https協定
![檢測我們的網站是否已經啟用了SSL憑證開啟https協定](https://i0.wp.com/www.spatialgeolab.com/wp-content/uploads/2023/10/image-8.png?resize=900%2C708&ssl=1)
正確啟用後,如果我們仍然採用http協議進行存取則會提示錯誤訊息
![http協議存取會有錯誤訊息](https://i0.wp.com/www.spatialgeolab.com/wp-content/uploads/2023/10/image-10.png?resize=534%2C228&ssl=1)
這邊採用https協議(會有一個鎖頭圖示),並開啟80port進行測試,可以正確拿到回傳的資料
![https協議(會有一個鎖頭圖示)](https://i0.wp.com/www.spatialgeolab.com/wp-content/uploads/2023/10/image-11.png?resize=321%2C94&ssl=1)