FastAPI啟用HTTPS


前提: 你需要購買一個域名, 假如是國內的法服務器的話, 需要備案, 否則無法解析
當你買了域名后, 一般可以免費生成證書

下載證書

由於我是在騰訊雲購買的域名, 所以在騰訊雲中下載證書.
地址: 我的證書
示意圖
下載完后, 你得到了四個文件:
下載后的文件

上傳到服務器

使用scp或其他工具上傳到項目的ssl目錄, ssl目錄用於專門放證書

我們一般要用到: xxx.top.keyxxx.yyy_bundle.crt這兩個文件

  • xxx.top.key 是私鑰文件
  • xxx.yyy_bundle.crt是證書文件

指定uvicorn使用證書的地址

使用ssl_keyfile參數和ssl_certfile分別指定私鑰和證書
假如使用命令行啟動的話, 為--ssl-keyfile--ssl-certfile


uvicorn.run(app="project:app", host=host, port=port, reload=True, 
ssl_keyfile="./ssl/xxx.top.key", ssl_certfile="./ssl/xxx.top_bundle.crt")

啟動服務, 並訪問

我這里使用docker部署服務

$docker-compose up
Starting project_project_1 ... done
Attaching to project_project_1
project_1  | INFO:     Will watch for changes in these directories: ['/var/www/html/project']
project_1  | INFO:     Uvicorn running on https://0.0.0.0:9000 (Press CTRL+C to quit)
project_1  | INFO:     Started reloader process [1] using statreload
project_1  | INFO:     Started server process [8]
project_1  | INFO:     Waiting for application startup.
project_1  | INFO:     Application startup complete.

示意圖

注意: 無法訪問的話, 你需要確定是否開放端口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM