Outils personnels

Proxmox sécurisation certificats SSL clients : Différence entre versions

De wikiGite

 
(5 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 3 : Ligne 3 :
 
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).
 
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).
  
 +
= Installation =
 
== Création du certificat client ==
 
== Création du certificat client ==
 +
Eventuellement, modifier
 +
/usr/share/ssl-cert/ssleay.cnf
 +
pour intégrer le nom du serveur ("@HostName@" ne revoit pas toujours le hostname en question). Puis :
 
  cd /tmp
 
  cd /tmp
 
  mkdir ssl
 
  mkdir ssl
Ligne 25 : Ligne 29 :
 
  /etc/init.d/apache2 reload
 
  /etc/init.d/apache2 reload
  
== Utilisation ==
+
= Utilisation =
A partir d'un client sans certificat, vérifier que Proxmox interdit l'accès à l'interface web.
+
A partir d'un client sans certificat, vérifier que Proxmox interdit l'accès à l'interface web (on doit avoir une erreur du type "connexion réinitialisée").
  
=== Navigateurs ===
+
== Navigateurs ==
 
Télécharger le fichier p12 (par FTP, SCP, ou tout autre moyen). L'importer dans le navigateur.
 
Télécharger le fichier p12 (par FTP, SCP, ou tout autre moyen). L'importer dans le navigateur.
 
* Firefox
 
* Firefox
Ligne 37 : Ligne 41 :
 
Une fois importé, vérifier que le navigateur accède (après validation) à la page de login
 
Une fois importé, vérifier que le navigateur accède (après validation) à la page de login
  
=== JAVA (pour les consoles VNCviewer) ===
+
== JAVA (pour les consoles VNCviewer) ==
Sur le poste client, regénérer le certificat CA à partir du fichier pksc12
+
'''Problème à résoudre :''' la console VNC ne fonctionne plus avec ces certificats.
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 mytruststore
 
Si le keystore n'était pas créé auparavant, keytool demande d'initialiser un mot de passe
 
  
Vérifier le keystore :
+
Résolution temporaire : -> private.
keytool -list -keystore mytruststore
 
  
== Notes ==
+
= 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.
 
* 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.

Version actuelle datée du 20 novembre 2012 à 15:26

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).

Installation

Création du certificat client

Eventuellement, modifier

/usr/share/ssl-cert/ssleay.cnf

pour intégrer le nom du serveur ("@HostName@" ne revoit pas toujours le hostname en question). Puis :

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 (on doit avoir une erreur du type "connexion réinitialisée").

Navigateurs

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)

Problème à résoudre : la console VNC ne fonctionne plus avec ces certificats.

Résolution temporaire : -> private.

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.