TLS pour PowerAdmin#
Nous allons configurer nginx pour activer TLS.
dnf install -y certbot
certbot --version
Nous allons devoir configurer nginx pour livrer un fichier utilisable par certbot.
mkdir -p /var/www/acme/.well-known/acme-challenge
chown -R root:root /var/www/acme
Le fichier nginx pour livrer la conf /etc/nginx/conf.d/certbot.conf, et aussi rediriger vers le https.
server {
listen 80;
listen [::]:80;
server_name _;
location ^~ /.well-known/acme-challenge/ {
root /var/www/acme;
default_type "text/plain";
}
location / { return 301 https://$host$request_uri; }
}
Nous allons rapidement desactiver le backend poweradmin pour generer le premier certificat.
mv /etc/nginx/conf.d/poweradmin.conf /etc/nginx/conf.d/poweradmin.conf.disable
systemctl restart nginx
Et donc nous pouvons generer le premier certificat.
certbot certonly \
--webroot -w /var/www/acme \
-d galaxy.as51144.net \
--key-type ecdsa \
--agree-tos -m noc@g3e.fr \
--no-eff-email
Maintenant que le certificat est genere, nous allons pouvoir activer le TLS sur le backend
/etc/nginx/conf.d/poweradmin.conf.
mv /etc/nginx/conf.d/poweradmin.conf.disable /etc/nginx/conf.d/poweradmin.conf
Dans /etc/nginx/conf.d/poweradmin.conf, remplacer les lignes deja ecrites et ajouter les autres.
listen 443 ssl;
server_name galaxy.as51144.net;
root /var/www/poweradmin;
index index.php;
ssl_certificate /etc/letsencrypt/live/galaxy.as51144.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/galaxy.as51144.net/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security "max-age=63072000" always;
add_header X-Frame-Options DENY always;
add_header X-Content-Type-Options nosniff always;
systemctl restart nginx
Si jusqu’a present tout s’est bien passe, nous allons juste faire la derniere etape : le renouvellement automatique du certificat.
mkdir -p /etc/letsencrypt/renewal-hooks/deploy
cat > /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh <<'EOF'
#!/bin/sh
systemctl reload nginx
EOF
chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh
systemctl enable --now certbot-renew.timer
systemctl list-timers certbot-renew.timer