Bonjour,
J'essai de mettre en place un authentification double sens sur un serveur Web sous centos 7. Après avoir fait plusieurs essais, je butte sans savoir d'où vient mon erreur.
j'installe la partie http puis mod_ssl et openssl, ouverture de port puis test https OK.
je génère ma clé rootCA privé :openssl genrsa -des3 -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
puis je passe aux certificats serveur :openssl req -new -key server.key -out server.csr
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 500 -sha256
j'ajoute les lignes suivantes au fichier httpd.conf :LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
je recopie les fichiers de certifictas dans les dossiers correspondants et dans le fichier ssl.conf, je décommente les lignes pour avoir sous cette forme :
SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/private/server.key
SSLCACertificateFile /etc/pki/tls/certs/rootCA.pem
SSLVerifyClient require
SSLVerifyDepth 10
Je passe à la création des certificats clients:openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr
openssl x509 -req -in client.csr -CA rootCA.pem -CAkey rootCA.key -CAserial rootCA.srl -out client.crt -days 500 -sha256
openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12
je redémarre le service httpd et importe le fichier rootCA.pem et client.p12 sur le poste client via firefox ou Inetrnet explorer.
Lors d ela connexion au serveur https, j'ai bien la demande de certificat mais une fois validée, j'ai un mesage d'erreur :
Une erreur est survenue pendant une connexion à 192.168.60.109. Le pair ne reconnaît pas l’autorité de certification qui a délivré votre certificat et ne lui fait pas confiance. Code d’erreur : SSL_ERROR_UNKNOWN_CA_ALERT
J'ai fait pas mal de test sans succès ; si vous avez une idée pour me faire avaner sur ce dossier je suis preneur !
Batist3
Bonjour,
Après avoir travaillé sur ce projet, j'ai enfin réussit à faie fonctionner ce système.
Voici comment : Installer CentOS 7 pusi lancer :
yum update -y
reboot
Installation de php55
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php55w php55w-opcache
php -v
systemctl enable httpd
systemctl start httpd
firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --zone=public --permanent --add-port=443/tcp
firewall-cmd --reload
yum install -y mariadb-server
systemctl enable mariadb
systemctl start mariadb
mysql_secure_installation
yum install -y php55w php55w-mysql php55w-common php55w-mcrypt php55w-gd mod_ssl openssl
yum update
A ce stade, la partie installation est terminée ; Génération des certificats
cd /root
mkdir certificates
cd certificates/
openssl genrsa -des3 -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -out rootCA.pem
Pour le rootCA, dans le champ commonname, inscrivez ce que vous voulez exemple CentOS
Pour les certificats server & client, dans commmonname, inscriver l'url du site internet exemple xyz.com
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 3650 -sha256
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr
openssl x509 -req -in client.csr -CA rootCA.pem -CAkey rootCA.key -CAserial rootCA.srl -out client.crt -days 3650 -sha256
openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12
cp server.crt /etc/httpd/conf/server.crt
cp server.key /etc/httpd/conf/server.key
cp server.crt /etc/ssl/certs/server.crt
cp server.key /etc/ssl/private/server.key
cp rootCA.pem /etc/pki/tls/certs/rootCA.pem
Modification du fichier ssl.conf :
Dans le fichier /etc/httpd/conf.d/SSL.conf, au niveau du virtualhost
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
SSLCACertificateFile /etc/pki/tls/certs/rootCA.pem
SSLVerifyClient require
SSLVerifyDepth 10
Dans le fichier /etc/httpd/conf.modules.d/00-ssl.conf
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Pour finir, redémarrer le service httpd en lançant la commande :
service httpd restart
Sur le poste client, recopier le fichier client.p12 sur le bureau et intégrer le avec le mot de passe fournis lors de la génération dans les certificats personnel.
Petite astuce, sous firefox, cocher la case En sélectionner un automatiquement, ceci évitera la demande de certificat à chaque connexion.
Pour Chrome sous windows, il faut intégrer le certificat avec IE.
En espérant que cela soit utile
Batist3
Hello Batist3,
Merci beaucoup pour cette explication.

A+,
MasterSleepy