FastAPI 中如何使用 HTTPS?

推荐答案

在 FastAPI 中使用 HTTPS 可以通过以下步骤实现:

  1. 生成 SSL/TLS 证书:首先,你需要生成 SSL/TLS 证书。可以使用 OpenSSL 工具生成自签名证书,或者从受信任的证书颁发机构(CA)获取证书。

  2. 配置 FastAPI 应用:在 FastAPI 应用中,使用 uvicorn 启动服务器时,指定证书和私钥文件。

  3. 运行应用:启动应用后,FastAPI 将通过 HTTPS 提供服务。

本题详细解读

1. 生成 SSL/TLS 证书

SSL/TLS 证书用于加密客户端与服务器之间的通信。你可以使用 OpenSSL 工具生成自签名证书,或者从受信任的证书颁发机构(CA)获取证书。自签名证书适用于开发和测试环境,但在生产环境中应使用受信任的 CA 签发的证书。

生成自签名证书的命令如下:

  • req:生成证书请求。
  • -x509:生成自签名证书。
  • -newkey rsa:4096:生成一个新的 RSA 私钥,密钥长度为 4096 位。
  • -keyout key.pem:指定私钥输出文件。
  • -out cert.pem:指定证书输出文件。
  • -days 365:证书有效期为 365 天。
  • -nodes:不加密私钥。

2. 配置 FastAPI 应用

在 FastAPI 应用中,使用 uvicorn 启动服务器时,可以通过 ssl_keyfilessl_certfile 参数指定私钥和证书文件。

-- -------------------- ---- -------
------ -------
---- ------- ------ -------

--- - ---------

-------------
--- ------------
    ------ ----------- ------- --------

-- -------- -- -----------
    ---------------- --------------- --------- ---------------------- ------------------------
  • host="0.0.0.0":监听所有网络接口。
  • port=443:HTTPS 默认端口。
  • ssl_keyfile="key.pem":指定私钥文件路径。
  • ssl_certfile="cert.pem":指定证书文件路径。

3. 运行应用

启动应用后,FastAPI 将通过 HTTPS 提供服务。你可以通过浏览器访问 https://localhost 来验证 HTTPS 是否正常工作。

注意事项

  • 生产环境:在生产环境中,建议使用受信任的 CA 签发的证书,而不是自签名证书。
  • 端口冲突:如果端口 443 被占用,可以选择其他端口,但需要在 URL 中指定端口号,例如 https://localhost:8443
  • 安全性:确保私钥文件的安全,避免泄露。

通过以上步骤,你可以在 FastAPI 中成功配置 HTTPS,确保数据传输的安全性。

纠错
反馈