SSL mediante Proxy con Nginx

¿Por qué utilizar Nginx como proxy inverso?
Nginx es una gran opción para publicar aplicaciones web, esto nos ayudaría incluso con certificados ssl para desarrollos sobre http como por ejemplo alguna aplicación que no tenga esta configuración, voy a usar de ejemplo un fork de Nagios como es checkmk.

Daré por hecho que tenéis la aplicación corriendo, en mi caso es checkmk como dije, esta escucha en el puerto 5555 por defecto y se accede por http con http://192.168.20.100:5555. Esto variara dependiendo de la aplicación, IP y puerto que escojáis, en mi caso vamos a usar este mismo puerto.

Ahora debemos crear nuestro fichero virtual host, para ello hacemos un:

touch /etc/nginx/sites-available/tudominio.com

Despues tenemos que editar este fichero y añadir lo siguiente, editando en todo momento el dominio que tengamos:

server {
listen 80;
server_name nagios.tudominio.com www.nagios.tudominio.com;
rewrite ^ https://$host$request_uri permanent;
}

server {
listen 443 ssl;

server_name nagios.tudominio.com;

ssl_certificate /mnt/wildcard_tudominio_com.crt;
ssl_certificate_key /mnt/wildcard_tudominio_com.key;

ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;

location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://192.168.20.100:5555;
proxy_read_timeout 90;
}

}

En la parte de location esta la magia, en esta parte es donde hacemos la redireccion a la ip donde tenemos nuestra aplicacion web.

Despues de esto solo tenemos que poner nuestro vhost en enable con el siguiente comando:

ln -s /etc/nginx/sites-available/nagios.tudominio.com /etc/nginx/sites-enabled/nagios.tudominio.com.conf

Podemos probar con un nginx -t para ver si nuestra configuracion es correcta, nos deberia decia algo asi:

Después de esto podemos reiniciar nginx y voila!!

systemctl restart nginx o service nginx restart

Ya tenemos funcionando nuestro proxy a través de nginx.

También te podría gustar...

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.