前提: 你需要购买一个域名, 假如是国内的法服务器的话, 需要备案, 否则无法解析
当你买了域名后, 一般可以免费生成证书
下载证书
由于我是在腾讯云购买的域名, 所以在腾讯云中下载证书.
地址: 我的证书
下载完后, 你得到了四个文件:
上传到服务器
使用scp或其他工具上传到项目的ssl
目录, ssl
目录用于专门放证书
我们一般要用到: xxx.top.key
和xxx.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.
注意: 无法访问的话, 你需要确定是否开放端口