Apache et modSSL : Authentification avec Certificat

Plop à tous,

Suite à ma dernière video sur la configuration du modssl et la mise en place d’une authentification SSL, voici la version texte.

L’idée est d’avoir un certificat spécifique à la gestion de l’authentification des clients (on peut néanmoins utiliser le certificat du serveur pour signer les certificats client autorisé à ce connecté).

Génération des certificats :

Il faut donc notre CA :

openssl genrsa -aes256 -out ca.key 2048
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

On importe ensuite le Ca dans les autorités (sinon, plantage de la connexion) :
import-ca

On génére un premier client (clé, csr, signature du csr en crt et export en P12) :

openssl genrsa -aes256 -out client.key 2048
openssl req -new -key client.key -out client.csr
openssl x509 -req -in client.csr -out client.crt -sha1 -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650
openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12 -name "client certificate"

On importe ensuite le P12 dans le navigateur :
import-1.

Côté serveur :

On rajoute dans notre conf (ici l’idée est de demander un certificat lorsque l’on accède à /wp-admin sur le blog) :

SSLCACertificatePath /etc/apache2/cert/trusted-ca/

        SSLRenegBufferSize 262144
        SSLVerifyDepth 3
        SSLVerifyClient require

Les certificats autorisés à émettre des certificats clients seront à mettre dans le dossier « /etc/apache2/cert/trusted-ca/ ».

Les fichiers mis dans le dossier « /etc/apache2/cert/trusted-ca/ » doivent suivre un format spécial : « chaineduhash.0 ».

Le hash d’un certificat se trouve ainsi :

openssl x509 -subject_hash -noout -in ca.crt

Une fois votre certificat mis dans le fichier « chaineduhash.0 » dans le dossier /etc/apache2/cert/trusted-ca/, vous pourrez vous authentifier avec votre certificat,à chaque ajout de certificat, il faut redémarrer le serveur (erreur qui est apparu dans ma vidéo ^^).