Forzar página SSL con Nginx

forzar-ssl-nginx

Hace algunas semanas tuve un problema con un dominio virtual dentro de nginx, que al entrar con HTTP me enviaba al HTTPS de otro sitio diferente al tecleado, es decir no respetaba estar en el mismo dominio. Debo decir que tengo varios dominios con SSL en la misma dirección IP. El problema es que en cada archivo de sites-enabled de nginx, tenía dos definiciones de server para cada dominio. En una, listaba el puerto 80 y luego mandaba redirección al domino con ssl activado, es decir HTTPS y la definición donde cargaba el certificado.

La solución fue entonces quitar la segunda definición de server y dejar sólo una, añadiendo la siguiente configuración:

   if ($scheme = http) {

return 301 https://$server_name$request_uri;

}

de tal forma que cualquier petición hecha al sitio sin el certificado SSL, lo reenvíe de forma permanente al sitio con https. Gracias a eso no se tiene que hacer nada raro en el código de la página, simplemente el servidor lo redirecciona de forma adecuada. Ya si hacemos la prueba vemos la respuesta:

gnu$ curl -Is http://tar.mx

HTTP/1.1 301 Moved Permanently

Server: nginx

Date: Mon, 06 Nov 2017 20:26:31 GMT

Content-Type: text/html

Content-Length: 178

Connection: keep-alive

Location: https://tar.mx/ X-Frame-Options: SAMEORIGIN

X-Content-Type-Options: nosniff

X-XSS-Protection: 1; mode=block

Como vemos, al solicitar el nombre del dominio con http me devuelve un Location al sitio que debe mostrar, eso es todo.

+ fotos

Forzar página SSL con Nginx
Forzar página SSL con Nginx

Almacenado en WebServer, nginx

por Jorge Martínez Mauricio :)

Reacciones

síguenos en instagram / twitter

Relacionadas

    Suscríbete por correo electrónico, recibirás los nuevos escritos antes que nadie y es gratis 😊

    Populares estos días

      blog / fotos / archivo

      Forzar página SSL con Nginx

      tar.mx es un blog sobre fotografía, tecnología y otras chunches

      tar.mx logo

      última mod lun 6 de noviembre de 2017, 14:35