· Tutorial ·

Com instal·lar certificat SSL a Nginx

Abans de començar amb 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 fàcilment amb SW Hosting.

El teu Cloud SO des de 5,60$/mes

Treu-li el màxim partit al teu projecte amb el Cloud que té els discos més ràpids i CPU d'alt rendiment.

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.

Recordeu que si no disposeu d'un servidor Cloud amb sistema operatiu Linux podeu desplegar-lo fàcilment amb SW Hosting.

El teu Cloud SO des de 5,60$/mes

Treu-li el màxim partit al teu projecte amb el Cloud que té els discos més ràpids i CPU d'alt rendiment.

i