Configurer Nginx en reverse-proxy avec Let’s Encrypt pour Proxmox

proxmox nginx proxy letsencrypt

Il y a plusieurs solutions pour sécuriser l’accès à l’interface Proxmox, mais si vous avez l’habitude tout comme moi de nginx, elle est la plus intéressante car elle permet non seulement d’utiliser le domaine de votre choix pour accéder à l’interface sur le port standard 443, mais également de ne pas vous retrouver bloqué par le firewall en cas de mauvaise configuration.

Dans ce tutorial, nous allons donc voir comment installer nginx et comment le configurer pour obtenir un certificat Let’sEncrypt et sécuriser ainsi l’interface de Proxmox.

On commence par installer nginx :

apt-get install nginx

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

upstream proxmox {
    server "votre.serveur.hostname";
}

server {
    server_name proxmox.votredomaine.com;
    rewrite ^(.*) https://$host$1 permanent;
location /.well-known {
            alias /var/www/html/.well-known;
    }

}

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 proxmox.votredomaine.com --email [email protected] --text --agree-tos

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/proxmox.conf afin d’utiliser le certificat :

server {
    listen 443;
    server_name proxmox.votredomaine.com;
    ssl on;
    ssl_certificate     /etc/letsencrypt/live/proxmox.votredomaine.com/fullchain.pem;
    ssl_certificate_key     /etc/letsencrypt/live/proxmox.votredomaine.com/privkey.pem;
    proxy_redirect off;
    location / {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass https://localhost:8006;
        proxy_buffering off;
        client_max_body_size 0;
        proxy_connect_timeout  3600s;
        proxy_read_timeout  3600s;
        proxy_send_timeout  3600s;
        send_timeout  3600s;
    }
}

On utilise à nouveau la commande service nginx reload pour appliquer la configuration et nous pouvons désormais accéder à l’interface proxmox via l’adresse : https://proxmox.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 [email protected] --text --agree-tos

Poster un Commentaire

2 Commentaires sur "Configurer Nginx en reverse-proxy avec Let’s Encrypt pour Proxmox"

Me notifier des
avatar
Trier par:   plus récents | plus anciens | plus de votes
vince
Invité

Bonjour,

Merci pour le tuto.

au debut du tuto, je ne comprends pas ce champ la :

upstream proxmox {
server « votre.serveur.hostname »;
}

De quel serveur hostname parlez vous ?
Merci

wpDiscuz