Guías y tutoriales

Cientos de tutoriales y guías paso a paso cuidadosamente escritas por nuestro equipo de soporte.

Instalar certificado SSL en Nginx

Para instalar un certificado SSL en Nginx, necesitaremos los ficheros siguientes:

  • Certificado (.crt)
  • Clave privada (.key)
  • Autoridad de certificación (.ca)

¿Ya los tienes? Empezamos:

  1. Copia los tres ficheros en el servidor. En este manual asumimos que has subido los tres ficheros mediante FTP, pero puedes realizarlo de cualquier otra forma.

  2. Conéctate al servidor mediante SSH y accede al directorio en el que se encuentran los certificados. Si los has subido al directorio 'web': cd /var/www/minuevaweb.es/datos/web

  3. Conectamos el fichero .crt con el fichero .ca, y lo guardamos en el directorio de certificados de Nginx: cat /var/www/minuevaweb.es/datos/web/certificado.crt /var/www/minuevaweb.es/datos/web/certificado.ca >> /etc/nginx/swhosting/ssl/certificados.crt

  4. Movemos el fichero .key al directorio de certificados de Nginx: mv /var/www/minuevaweb.es/datos/web/certificado.key /etc/nginx/ssl/

  5. Eliminamos los archivos de certificado de la carpeta web para asegurarnos que no sean públicos. rm /var/www/minuevaweb.es/datos/web/certificado.crt rm /var/www/minuevaweb.es/datos/web/certificado.ca

  6. Accedemos al directorio de certificados y cambiamos el propietario y grupo de los mismos a root: cd /etc/nginx/ssl chown root:root certificados.crt certificado.key

Ya hemos copiado los certificados en el directorio correspondiente.

A continuación, procedemos a modificar el archivo de configuración correspondiente a nuestra web:

  • Accede al directorio de ficheros de configuración vhosts: cd /etc/nginx/sites-enabled/

  • Edita el fichero de configuración correspondiente a la web en la que estás instalando el certificado SSL. En este ejemplo utilizamos el editor de textos nano, pero puedes hacer uso de cualquier otro: nano minuevaweb.es.conf

  • Hacemos una copia del primer bloque existente debajo del mismo, quedando duplicado:

    # nginx virtual host for domain 'minuevaweb.es'
    server {
        listen 80;
        root "/var/www/minuevaweb.es/datos/web";
        index index.html index.php;
        server_name minuevaweb.es www.minuevaweb.es;
        access_log /var/www/minuevaweb.es/logs/20190307.log;
        error_log /var/www/minuevaweb.es/logs/error_20190307.log;
        include /etc/nginx/php7.2.conf;
    }

    (el archivo original)

    server {
        listen 80;
        root "/var/www/minuevaweb.es/datos/web";
        index index.html index.php;
        server_name minuevaweb.es www.minuevaweb.es;
        access_log /var/www/minuevaweb.es/logs/20190307.log;
        error_log /var/www/minuevaweb.es/logs/error_20190307.log;
        include /etc/nginx/php7.2.conf;
    }
    server {
        listen 80;
        root "/var/www/minuevaweb.es/datos/web";
        index index.html index.php;
        server_name minuevaweb.es www.minuevaweb.es;
        access_log /var/www/minuevaweb.es/logs/20190307.log;
        error_log /var/www/minuevaweb.es/logs/error_20190307.log;
        include /etc/nginx/php7.2.conf;
    }

    (el archivo con la copia original)

  • En el segundo bloque, modificamos el puerto de 80 a 443:

    server {
        listen 443;
        ...
  • En el segundo bloque, después del puerto (parámetro listen), añadimos las siguientes líneas con las rutas correspondientes a nuestros certificados:

        ...
        ssl on;
        ssl_certificate /etc/nginx/ssl/certificados.crt;
        ssl_certificate_key /etc/nginx/ssl/certificado.key;
        ...
  • Quedará de la siguiente forma:

    # nginx virtual host for domain 'minuevaweb.es'
    server {
        listen 80;
        root "/var/www/minuevaweb.es/datos/web";
        index index.html index.php;
        server_name minuevaweb.es www.minuevaweb.es;
        access_log /var/www/minuevaweb.es/logs/20190307.log;
        error_log /var/www/minuevaweb.es/logs/error_20190307.log;
        include /etc/nginx/php7.2.conf;
    }
    server {
        listen 443;
        ssl on;
        ssl_certificate /etc/nginx/ssl/certificados.crt;
        ssl_certificate_key /etc/nginx/ssl/certificado.key;
        root "/var/www/minuevaweb.es/datos/web";
        index index.html index.php;
        server_name minuevaweb.es www.minuevaweb.es;
        access_log /var/www/minuevaweb.es/logs/20190307.log;
        error_log /var/www/minuevaweb.es/logs/error_20190307.log;
        include /etc/nginx/php7.2.conf;
    }
  • Guardamos los cambios realizados. En el editor de textos nano, has de pulsar la siguiente combinación de teclas: Ctrl + X para guardar y salir Tecla Y para confirmar que quieres sobreescribir Tecla Enter

  • Comprobamos que la configuración es correcta: nginx -t Si aparece algún error, repasa los pasos anteriores.

  • Recargamos la configuración de Nginx para que se apliquen los cambios: /etc/init.d/nginx reload

¡Listo! Accede a tu web con el prefijo https:// para verificar que funciona correctamente.

Si lo prefieres, podemos realizar esta gestión por ti. Solicítalo mediante un ticket para actuación técnica.

Utilizamos cookies para proporcionar nuestros servicios y para análisis y marketing. Para obtener más información sobre nuestro uso de cookies, consulte nuestra Información cookies. Al continuar navegando en nuestro sitio web, usted acepta nuestro uso de cookies.