Guies i tutorials

Centenars de tutorials i guies pas a pas curosament escrits per el nostre equipo de suport.

Com instal·lar certificat SSL a Nginx

Per instal·lar un certificat SSL a Nginx, necessitarem els següents fitxers:

  • Certificat (.crt)
  • Clau privada (.key)
  • Autoritat de certificació (.ca)

Ja els tens? Comencem:

  1. Copia els tres fitxers al servidor. En aquest manual, assumim que has pujat els tres fitxers mitjançant FTP, però pots fer-ho de qualsevol altra manera.

  2. Connecta't al servidor mitjançant SSH i accedeix al directori on es troben els certificats. Si els has pujat al directori 'web': cd /var/www/minuevaweb.es/datos/web

  3. Connecta el fitxer .crt amb el fitxer .ca, i el guardes al directori de certificats 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. Mou el fitxer .key al directori de certificats de Nginx: mv /var/www/minuevaweb.es/datos/web/certificado.key /etc/nginx/ssl/

  5. Elimina els fitxers de certificat de la carpeta web, per assegurar-te que no siguin públics. rm /var/www/minuevaweb.es/datos/web/certificado.crt rm /var/www/minuevaweb.es/datos/web/certificado.ca

  6. Accedeix al directori de certificats i canvieu-ne el propietari i el grup a root: cd /etc/nginx/ssl chown root:root certificats.crt certificat.key

Ja hem copiat els certificats al directori corresponent.

A continuació procedim a modificar l'arxiu de configuració corresponent a la nostra web:

  • Accedeix al directori de fitxers de configuració vhosts: cd /etc/nginx/sites-enabled/

  • Edita el fitxer de configuració corresponent a la web on estàs instal·lant el certificat SSL. En aquest exemple utilitzem l'editor de textos nano, però pots fer ús de qualsevol altre: nano minuevaweb.es.conf

  • Fes una còpia del primer bloc existent sota el mateix, quedarà duplicat:

# 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;
}

(l'arxiu 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;
}

(l'arxiu amb la còpia original)

  • Al segon bloc, modifiquem el port de 80 a 443:
server {
        listen 443;
        ...
  • Al segon bloc, després del port (paràmetre listen), afegim les següents línies amb les rutes corresponents als nostres certificats:
        ...
        ssl on;
        ssl_certificate /etc/nginx/ssl/certificados.crt;
        ssl_certificate_key /etc/nginx/ssl/certificado.key;
        ...
  • Quedarà de la següent 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;
}
  • Guarda els canvis realitzats. A l'editor de textos nano, has de prémer la combinació de tecles següent: Ctrl + X per desar i sortir Tecla Y per confirmar que vols sobreescriure Tecla Enter

  • Comprova que la configuració sigui correcta: nginx -t Si apareix algun error, repassa els passos anteriors.

  • Recarrega la configuració de Nginx perquè s'apliquin els canvis: /etc/init.d/nginx reload

A punt! Accedeix a la teva web amb el prefix https:// per verificar que funciona correctament.