Dans ce tutorial, nous allons donc voir comment installer Nginx et comment le configurer pour obtenir un certificat Let’s Encrypt et sécuriser votre application.

On commence par installer nginx :

apt-get install nginx

Puis on créer un fichier /etc/nginx/conf.d/app.conf :

upstream app {
    server "HOSTNAME DE VOTRE SERVEUR";
}

server {
    listen 80;
    return 301 https://api.nocturne.life$request_uri;
}

server {
    listen 443;
    server_name api.votredomaine.com;

    location /.well-known {
      alias /var/www/html/.well-known;
    }
}

Veuillez remplacer:
- HOSTNAME DE VOTRE SERVEUR: par l'hostname de votre machine.
- api.votredomaine.com: par votre nom de domaine.

Pour appliquer la configuration, on utilise la commande service nginx reload.
On peut désormais passer à l’installation de Let’s Encrypt si ce n’est pas déjà fait.

cd /opt
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

Il ne nous reste plus qu’à générer le certificat via la commande :

./letsencrypt-auto certonly --webroot -w /var/www/html -d api.votredomaine.com --email test@gmail.com --text --agree-tos

Veuillez remplacer:
- api.votredomaine.com: par votre nom de domaine.
- test@gmail.com: par votre adresse mail.

Let’s Encrypt va alors effectuer l’opération de vérification en créer un dossier .well-known dans /var/www/html puis générer votre certificat.

Nous pouvons donc désormais ajouter les lignes suivantes à notre fichier /etc/nginx/conf.d/app.conf afin d’utiliser le certificat :

upstream app {
    server "HOSTNAME DE VOTRE SERVEUR";
}
	
server {
    listen 80;
    return 301 https://api.votredomaine.com$request_uri;
}

server {
    listen 443;
    server_name api.votredomaine.com;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/api.votredomaine.com/fullchain.pem;
    ssl_certificate_key     /etc/letsencrypt/live/api.votredomaine.com/privkey.pem;

    location /.well-known {
      alias /var/www/html/.well-known;
    }

    location / {
      proxy_pass http://localhost:8080;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Host $host;
    }
}

Veuillez remplacer:
- api.votredomaine.com: par votre nom de domaine.
- /etc/letsencrypt/live/api.votredomaine.com/fullchain.pem: par votre nom de domaine dans le chemin d'accés.
- /etc/letsencrypt/live/api.votredomaine.com/privkey.pem: par votre nom de domaine dans le chemin d'accés.
- https://localhost:8006: par https://localhost:PORT_DE_VOTRE_APPLICATION

<br/>

On utilise à nouveau la commande service nginx reload pour appliquer la configuration et nous pouvons désormais accéder à notre interface via l’adresse : https://api.votredomaine.com.

Vous pouvez ajouter un cron pour renouveler automatiquement votre certificat letsencrypt tous les 30 jours :

0 0 1 * * /opt/letsencrypt-auto certonly --webroot -w /var/www/html -d proxmox.votredomaine.com --email votreemail@votredomaine.com --text --agree-tos

Et puis il reste plus qu'à redémarrer le service cron :

service cron restart
Répondre…