es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Los enlaces FastAPI creados por url_for en la plantilla Jinja2 utilizan HTTP en lugar de HTTPS.

Migré una aplicación en Flask servida por waitress a FastAPI servida por uvicorn, pero no puedo forzar los enlaces (generados por url_for dentro del archivo index.html de la plantilla) a utilizar HTTPS en lugar de HTTP.

Con waitress, usaba:

from waitress import serve
import flask_app

PORT=5000
HOST_IP_ADDRESS='0.0.0.0'

serve(flask_app.app, host=HOST_IP_ADDRESS, port=PORT, url_scheme="https")

Con uvicorn, intenté usar proxy_headers, pero eso no funcionó. Utilicé un método alternativo en el archivo index.html:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

Esto cargó correctamente el style.css desde los archivos estáticos, pero los enlaces a otro punto final aún utilizan HTTP.

¿Existe una manera sencilla de forzar que todos los enlaces creados por url_for utilicen HTTPS?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, existe una forma fácil de forzar que todos los enlaces creados por url_for utilicen HTTPS. En la instancia de la aplicación FastAPI, puedes configurar la variable de entorno FORCE_HTTPS=True para que todos los URLs generados utilicen HTTPS. Alternativamente, puedes pasar url_scheme='https' a la instancia de la aplicación FastAPI como parámetro. Ambos enfoques deberían garantizar que todos los enlaces generados por url_for utilicen HTTPS.

Comments are closed.