SSL申請

[伺服器架設教學]免費SSL申請安裝教學-ZeroSSL(Apache示範安裝)

#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帳號
註冊ZeroSSL帳號

步驟二:申請SSL證書

登入後可以在狀態面板中看到剩餘可申請的SSL數量,點選「New Certificate」可進入申請頁面,免費方案下只能申請90天的SSL憑證,如果要申請1年期的需要購買進階版會員

ZeroSSL

點選「New Certificate」可進入申請頁面後,可以在下方輸入「網域名稱」、或是純IP進行認證申請,這邊以純IP進行示範,點選Next Step後選擇90天期進行申請。

輸入網域名稱或是IP位置
輸入網域名稱或是IP位置
申請90天SSL
申請90天SSL

依序點選下一步,之後會來到選擇方案選項,如果是選擇90天期的SSL,則可以選擇免費方案,如果選擇1年期則看不到免費方案選項

ZeroSSL方案選擇
方案選擇

接下來要進行網站驗證流程,主要可分為「DNS」驗證以及「HTTP File Upload」驗證,這邊建議如果採用純IP形式的話,可以直接下載驗證檔到指定的路徑下進行驗證,筆者後端採用Python-flask框架,這邊提供我驗證用的程式碼供參考,驗證過後會跳出SSL憑證下載頁面。

SSL網站驗證程序
SSL網站驗證程序
#透過設定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。這三個檔案儲存到你的伺服器中。

接下來,需要配置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協定

正確啟用後,如果我們仍然採用http協議進行存取則會提示錯誤訊息

http協議存取會有錯誤訊息
http協議存取會有錯誤訊息

這邊採用https協議(會有一個鎖頭圖示),並開啟80port進行測試,可以正確拿到回傳的資料

https協議(會有一個鎖頭圖示)

延伸閱讀

參考資料:

Flask+Apache+wgsi架設教學

分享

發表迴響