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