Com instal·lar el certificat SSL a Nginx

Actualitzat el 2026-10-27 11:01:46 84 visites

Abans de començar el tutorial, no tens un servidor Cloud Linux on puguis instal·lar el teu servidor web nginx? No et preocupis! Amb només un clic, pots desplegar-lo fàcilment amb SW Hosting.

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? Començem:

  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 guarda'l 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/swpanel/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 canvia el propietari i el grup dels mateixos a root: cd /etc/nginx/ssl chown root:root certificados.crt certificado.key

Ja hem copiat els certificats al directori corresponent.

A continuació procedim a modificar el fitxer 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 servir qualsevol altre: nano minuevaweb.es.conf

  • Fes una còpia del primer bloc existent per sota del 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;
}

(el fitxer 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 fitxer amb la còpia original)

  • En el segon bloc, modifiquem el port de 80 a 443:
server {
        listen 443;
        ...
  • En el 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. En l'editor de textos nano, has de prémer la combinació de tecles següent: Ctrl + X per guardar i sortir Tecla Y per confirmar que vols sobrescribir 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

Ja està! Accedeix a la teva web amb el prefix https:// per verificar que funciona correctament.

Recorda que si encara no disposes d'un servidor Cloud amb sistema operatiu Linux, pots desplegar-lo fàcilment amb SW Hosting.