Installation de certbot
apt install certbot
Si vous avez suivi mon précédant chapitre vous devriez avoir ceci dans /etc/nginx/sites-available/votre_site
server {
listen 80;
listen [::]:80;
server_name website1.mydomain.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
include proxy.conf;
proxy_pass http://192.168.0.4:80/;
}
}
Créer un dossier .well_known qui servira a valider le certificat :
mkdir -p /var/www/ssl/.well-known echo "WEBSITE1 SSL TEST" > /var/www/ssl/.well-known/test.html
Maintenant ajoutez le a votre conf site :
server {
listen 80;
listen [::]:80;
server_name website1.mydomain.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location /.well-known {
root /var/www/ssl/website1/;
}
location / {
include proxy.conf;
proxy_pass http://192.168.0.4:80/;
}
}
Relancer nginx :
service nginx reload
Utilisation de CERTBOT pour créer un certificat SSL pour votre domaine :
certbot certonly
Suivez les instructions et indiquez le placement des fichiers via le dossier “webroot” Indiquez le chemin du dossier .well_known Dans notre exemple : /var/www/ssl/
Vous devriez avoir un retour de lets-encrypt vous indiquant congratulation
A ce stade vous devez déjà disposer d’une partie de la configuration requise pour le niveau «A». Il vous suffira d’ajouter une chose à votre domaine. À l'aide d'openSSL, générez un nouveau groupe Diffie-Hellman de 2048 bits, à remplacer par votre propre chemin.
openssl dhparam -out /etc/letsencrypt/live/website1.mydomain.com/dhparams.pem 2048
Mettez a jour votre conf site “vi /etc/nginx/si…..”
server {
listen 80;
listen [::]:80;
server_name website1.mydomain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name website1.mydomain.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/website1.mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/website1.mydomain.com/privkey.pem;
ssl_dhparam /etc/letsencrypt/live/website1.mydomain.com/dhparams.pem;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location /.well-known {
root /var/www/ssl/;
}
location / {
include proxy.conf;
proxy_pass http://192.168.0.4:80/;
}
}