Closed danflop closed 2 years ago
Creé el ambiente con los siguientes pasos, teniendo en cuenta que mi ambiente de desarrollo ya está en contenedores docker (todos en la misma red):
docker run --name bm_nginx_dev -p 3500:443 -d nginx
) y lo conecté a la misma red de los demás contenedores.Seguí los pasos de la sección Configuring the Web Server to Support HTTPS.
.crt
y el .csr
como lo indica la subsección Intermediate and SSL Certificate Bundle.Además de la configuración descrita en la subsección Nginx, agregué otras configuraciones basandome en el nginx de biotablero, de tal forma que el archivo de configuración quedó así:
upstream app {
server bm_front_dev:3000;
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /certificate_and_chain.pem;
ssl_certificate_key /server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://app/;
proxy_set_header Host $host;
proxy_redirect off;
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
No he forzado el ssl en la aplicación de Rails, pero además del warning del navegador porque usa un certificado autofirmado, lo poco que exploré carga bien. Dejaré el ajuste y revisión de las demás cosas a la tarea #346
Como parte de la tarea 346 se modificaron algunas cosas en la configuración del nginx, aunque esto no nos corresponde en el ambiente de producción, es una guía para reproducir en ambiente local y para tener en cuenta si se requiere solicitar algo a tecnologías cuando se lleve a producción. La configuración final quedó así:
upstream bm_front {
server bm_front_dev:3000;
}
server {
listen 80;
server_name biomodelos_dev;
return 301 https://biomodelos_dev$request_uri;
}
server {
listen 443 default_server ssl;
server_name biomodelos_dev;
ssl_certificate /certificate_and_chain.pem;
ssl_certificate_key /server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
client_max_body_size 50M;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://bm_front/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
root /usr/share/nginx/html;
index index.html index.htm;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Lo más importante que se requiere del nginx institucional es que es se envíe el header X-Forwarded-Proto https;
El objetivo de esta tarea es implementar de forma local un certificado SSL en un servidor nginx que pueda utilizarse con BioModelos. El certificado puede ser auto-firmado y para ello se debe investigar el proceso para implementarlo.
El resultado esperado es una POC del servidor funcional con un certificado SSL en un equipo local.
Tener en cuenta la guía de la tarea #345 y las actividades listadas del resultado de la misma.