Certificat Let’s Encrypt sur votre hyperviseur Proxmox: new

Il y peu Proxmox à mis à jour son wiki afin de pouvoir appliquer un certificat ssl de Let’s Encrypt, donc je me suis dis autant le faire sur mon hyperviseur et vous en faire profiter.

Cet article est une nouvelle version de mon article mais l’auteur du dépôt git à changé sa façon de faire, alors je refais un article pour la prendre en compte.

Le pré-requis est d’avoir au moins la version 4.1-20 de votre pve-manager, pour savoir de quelle version vous disposez, il suffit de faire un « pveversion » dans votre environnement. Ici je suis en 4.1-22 la dernière version publiée.

On mets à jour le script pour ceux qui aurait suivit la première version de mon article (le.sh => acme.sh)

le.sh uninstall

Pour commencer on install ce qu’il manque.

apt install git-core unzip

On récupère l’archive proposé par Proxmox et on la décompresse via git ou wget c’est au choix.

Via git.

git clone https://github.com/Neilpang/acme.sh.git acme.sh-master

En téléchargement direct.

wget 'https://github.com/Neilpang/acme.sh/archive/master.zip'
 unzip master.zip

On install le script. Remplacez $EMAIL par votre adresse mail.

mkdir /etc/pve/.le
cd /root/acme-master
./acme.sh --install --accountconf /etc/pve/.le/account.conf --accountkey /etc/pve/.le/account.key --accountemail "$EMAIL"

Ensuite on édite le fichier config avec nos infos:

nano /etc/pve/.le/account.conf

ACCOUNT_EMAIL=votre@boitemail.com
ACCOUNT_KEY_PATH to « /etc/pve/.le/account.key »

Création de votre premier certificat (remplacer $DOMAIN par votre FQDN)

acme.sh --issue --standalone --keypath /etc/pve/local/pveproxy-ssl.key --fullchainpath /etc/pve/local/pveproxy-ssl.pem --reloadcmd "systemctl restart pveproxy" -d $DOMAIN

Vous remarquerez ce petit warning « cp: preserving permissions for ‘/etc/pve/local/pveproxy-ssl.pem.bak’: Function not implemented » on peut passer outre ça n’impactera pas la suite.

On passe le certificat en production avec l’option « –force »

acme.sh --issue --standalone --keypath /etc/pve/local/pveproxy-ssl.key --fullchainpath /etc/pve/local/pveproxy-ssl.pem --reloadcmd "systemctl restart pveproxy" -d $DOMAIN --force

Je vous épargne la génération des certificats même si avec mon vieux E3-1245 c’est rapide.

Pour mettre à jour automatiquement notre certificat, on ajoute une petite ligne à Crontab

0 0 * * * « /root/.acme.sh »/acme.sh –cron –home « /root/.acme.sh » > /dev/null

On test si ça marche

« /root/.acme.sh »/acme.sh –cron –home « /root/.acme.sh »

Pour effectuer la mise à jour du script proposé il suffira juste de faire.

cd /root/le-master
git pull
./acme.sh --install --accountconf /etc/pve/.le/account.conf --accountkey /etc/pve/.le/account.key --accountemail "YOUR@EMAIL.ADDRESS"

Je vous recommande de faire une sauvegarde de votre clé au cas où la clé serait compromise.

/etc/pve/.le/account.key

Voilà un joli certificat tout beau tout propre.

Capture
Source: https://pve.proxmox.com/wiki/HTTPSCertificateConfiguration