14 febrero 2016

Como configurar un certificado SSL para un servidor web implementado sobre Flask

En esta entrada vamos a configurar un certificado SSL para un servidor web implementado sobre Flask
Primero tenemos que crear el certificado SSL de acuerdo a lo explicado en esta otra entrada.
Una vez lo tenemos, añadimos estas constantes en el fichero de configuración config.py
SERVER_KEY = '/home/aneolf/.ssl/localhost.key'
SERVER_CERTIFICATE = '/home/aneolf/.ssl/localhost.crt'
Suponiendo que dichas claves se han guardado en el directorio .ssl del home del usuario. A continuación, en el fichero de arranque del servidor
from config import SERVER_KEY, SERVER_CERTIFICATE

if __name__ == "__main__":
    context = (SERVER_CERTIFICATE, SERVER_KEY)
    app.run(
        host='0.0.0.0',
        port=80,
        ssl_context=context,
        threaded=True,
        debug=True,
        )
Con esto veremos que cada vez que arrancamos el servidor, nos pide que introduzcamos la contraseña PEM de la clave, para evitarlo abriremos una terminal, cambiaremos el directorio de trabajo a donde esté guardado el certificado y haremos lo siguiente:
cp localhost.key localhost.key.org
openssl rsa -in localhost.key.org -out localhost.key
[enter the passphrase]
Introduciremos la contraseña que pusimos en la clave cuando la creamos y listo. A partir de este momento, cada vez que reiniciemos el servidor ya no necesitaremos introducir nuevamente la contraseña.

No hay comentarios: