我有一个 NAS (Synology) 来存放我的一些作品。 有一个 mariadb 数据库、一个 Web 服务器 (nginx) 和用于托管我个人 Python API 的 Docker。
如你所见,我还制作了一个使用 python API 的前端(Vue JS)网页。
我想用 HTTPS 保护所有这些。
我成功添加了 Let's Encrypt (LE) 证书,Web 客户端使用它没有问题。
但是 Python API 仅通过 HTTP 提供,在 Web 客户端上会出现此错误:
Mixed Content: The page at 'https://mydomain.fr/' was loaded over HTTPS,but requested an insecure XMLHttpRequest endpoint 'http://mydomain:12345/myroute'. This request has been blocked; the content must be served over HTTPS.
我明白。
所以我希望我的 python API 使用 HTTPS。
我使用 gunicorn 服务器,并尝试了几件事: 添加 ssl_context:
app.run(host='0.0.0.0',ssl_context='adhoc')
添加一些LE给的文件(我不明白我在做什么):
CMD ["gunicorn","--certfile=certificat.pem","--keyfile=cleprivee.key","--ca_certs=ca.cer","-b","0.0.0.0:5000","feed:app"]
但我在这些测试中只得到了“超时”。
对于 api,我是否必须使用与 Web 服务器相同的证书? 我如何“给”它给 api?