本文介紹在Python Flask本地開發服務器配置SSL證書的具體步驟,包括下載和上傳證書文件,在Flask run配置證書文件和證書密鑰,以及安裝證書后結果的驗證。成功配置SSL證書后,您將能夠通過HTTPS加密通道安全訪問Flask應用。
本文以Linux操作系統、Python 3.6和Flask 2.0.3為例進行介紹。不同版本的操作系統或Flask可能存在配置方法上的差異。
本文配置SSL證書的方法僅適用于開發環境。在實際生產環境中,若您的Flask網站使用Nginx等反向代理服務器對外提供服務,請在Nginx上配置SSL證書。具體操作,請參見Nginx或Tengine服務器配置SSL證書。
配置SSL證書過程中如有問題,請聯系產品技術專家進行咨詢,詳情請參見專家一對一服務。
前提條件
步驟一:下載SSL證書
登錄數字證書管理服務控制臺。
在左側導航欄,選擇。
在SSL證書管理頁面,定位到目標證書,在操作列,單擊更多,然后選擇下載頁簽。
在服務器類型為其他的操作列,單擊下載。
解壓縮已下載的SSL證書壓縮包。
根據您在提交證書申請時選擇的CSR生成方式,解壓縮獲得的文件不同,具體如下表所示。
CSR生成方式
證書壓縮包包含的文件
系統生成或選擇已有的CSR
證書文件(PEM格式):Flask支持安裝PEM格式的證書文件。PEM格式的證書文件是采用Base64編碼的文本文件,且包含完整證書鏈。解壓后,該文件以
證書ID_證書綁定域名
命名。私鑰文件(KEY格式):默認以證書綁定域名命名。
手動填寫
如果您填寫的是通過數字證書管理服務控制臺創建的CSR,下載后包含的證書文件與系統生成的一致。
如果您填寫的不是通過數字證書管理服務控制臺創建的CSR,下載后只包括證書文件(PEM格式),不包含證書密碼或私鑰文件。您可以通過證書工具,將證書文件和您持有的證書密碼或私鑰文件轉換成所需格式。轉換證書格式的具體操作,請參見證書格式轉換。
步驟二:在Flask網站安裝證書
執行以下命令,在Linux服務器的
/
目錄下創建一個用于存放證書的目錄。mkdir /ssl #創建證書目錄,命名為ssl。
將證書文件和私鑰文件上傳到Linux服務器的證書目錄(
/ssl
)。說明您可以使用遠程登錄工具附帶的本地文件上傳功能,上傳文件。例如PuTTy、Xshell或WinSCP等。如果您使用的阿里云云服務器 ECS,上傳文件具體操作,請參見上傳或下載文件(Windows)或上傳文件到Linux云服務器。
打開Flask應用文件,參考以下示例代碼配置證書。
以下是一段完整的Flask應用示例代碼。您可以復制代碼內容,并在修改證書路徑后保存為test.py以進行測試運行。
# 引入 flask web 框架 from flask import Flask app = Flask(__name__) @app.route("/") def main(): return "<p>Hello, World!</p>" # 配置SSL證書 # HTTPS的默認訪問端口443。 # 配置443端口和證書絕對路徑。'/ssl/cert.pem'需替換為證書文件絕對路徑。'/ssl/cert.key'需替換為證書私鑰絕對路徑。 context = (r'/ssl/cert.pem', r'/ssl/cert.key') app.run(host="0.0.0.0", port=443, ssl_context=context)
步驟三:重啟Flask應用驗證SSL證書是否配置成功
證書安裝完成后,您可通過訪問證書的綁定域名驗證該證書是否安裝成功。
https://yourdomain #需要將yourdomain替換成證書綁定的域名。
如果網頁地址欄出現小鎖標志,表示證書已經安裝成功。