Proxmox sécurisation certificats SSL clients
De wikiGite
L'interface d'administration Proxmox est accessible en HTTPS, donc échanges cryptés et sécurisés par SSL. Les login/mot de passe demandés à la connexion ne passent donc pas en clair.
Pour encore plus de sécurité, on peut forcer le serveur à n'autoriser que les clients disposant d'un certificat local. Sans ce certificat généré avec le CA du serveur, le client n'arrive pas jusqu'à la page de login et reçoit une erreur (certificat erroné, ou certificat client requis, selon les navigateurs).
Sommaire
Création du certificat client
cd /tmp mkdir ssl cd ssl/ openssl genrsa -out proxmox-cli-cert.key 2048 openssl req -config /usr/share/ssl-cert/ssleay.cnf -new -key proxmox-cli-cert.key -out proxmox-cli-cert.req openssl x509 -req -in proxmox-cli-cert.req -CA /etc/pve/pve-root-ca.pem -CAkey /etc/pve/pve-root-ca.key -set_serial 101 -days 3650 -outform PEM -out proxmox-cli-cert.pem
Puis on exporte ce certificat dans un format lisible par les navigateurs
openssl pkcs12 -export -inkey proxmox-cli-cert.key -in proxmox-cli-cert.pem -out proxmox-cli-cert.p12
Donner un mot de passe ET S'EN SOUVENIR !
Le fichier P12 contient tout ce qu'il faut, on peut supprimer le reste.
rm proxmox-cli-cert.req proxmox-cli-cert.key proxmox-cli-cert.pem
Configuration d'Apache
Editer /etc/apache2/sites-enabled/pve.conf. Après les lignes "SSLCertificate..." ajouter :
SSLVerifyClient require SSLVerifyDepth 4 SSLCACertificateFile /etc/pve/pve-root-ca.pem
Et ne pas oublier
/etc/init.d/apache2 reload
Utilisation
A partir d'un client sans certificat, vérifier que Proxmox interdit l'accès à l'interface web.
Télécharger le fichier p12 (par FTP, SCP, ou tout autre moyen). L'importer dans le navigateur.
- Firefox
Edition / Préférences / Avancé / Chiffrement / Afficher les certificats / Vos certificats / Importer...
- Chrome
Préférences / Options avancées / HTTPS/SSL / Gérer les certificats / Importer...
Une fois importé, vérifier que le navigateur accède (après validation) à la page de login
JAVA (pour les consoles VNCviewer)
Sur le poste client, regénérer le certificat CA à partir du fichier pksc12
openssl pkcs12 -in monserver-ca.p12 -out monserveur.txt -nokeys -clcerts openssl x509 -in ogg.txt -outform DER -out OggCA.der keytool -import -file OggCA.der -alias monserveur -keystore ~/.keystore
Si le keystore n'était pas créé auparavant, keytool demande d'initialiser un mot de passe
Vérifier le keystore :
keytool -list
(le fichier ~/.keystore est pris par défaut)
Notes
- Les certificats Proxmox (pve-root-ca) étant générés à l'installation, il contiennent un nom d'hôte générique "@HostName". C'est ce nom qui apparaitra dans le gestionnaire de certificats des navigateurs pour tous les serveur Proxmox.