Bienvenue
Jalios Community
Tout ce que vous souhaitez savoir sur l'écosystème Jalios
Ce document décrit les configurations nécessaires pour effectuer une certification par certificat client disponible en standard depuis JCMS 10. Il abordera les principes et la configuration pour Apache Tomcat et Apache Http Server.
L'authentification d'un utilisateur par certificat client SSL est disponible dans JCMS 10 (cf JCMS-6127), son principe est le suivant :
Importer dans le navigateur le certificat client (au format p12, contenant la clé privée et le certificat), il doit donc être disponible dans le magasin du navigateur pour s'authentifier.
Importer aussi la chaine d'authentification (ca-chain.cert.pem
) comme autorité valide (soi l'autorité interne est utilisée).
Suivre la documentation disponible à https://tomcat.apache.org/tomcat-8.5-doc/ssl-howto.html
Importer le certificat du serveur dans le keystore utilisé par tomcat, ex :
keytool -importkeystore -srckeystore certs/webServer/webServer.p12 -keystore ~/.keystore
Changer l'alias du certificat importé si besoin (via la commande keytool -changealias) :
[15:22] smadja@orion:intermediate $ keytool -list -keystore ~/.keystore
Entrez le mot de passe du fichier de clés :
Type de fichier de clés : JKS
Fournisseur de fichier de clés : SUN
Votre fichier de clés d'accès contient 1 entrée
1, 18 sept. 2017, PrivateKeyEntry,
Empreinte du certificat (SHA1) : E6:A5:67:D6:23:6C:2B:83:A8:EE:22:E6:75:94:F3:AD:C8:01:38:3B
[15:24] smadja@orion:intermediate $ keytool -changealias -keystore ~/.keystore -alias 1 -destalias tomcat
Entrez le mot de passe du fichier de clés :
Entrez le mot de passe de la clé pour <1>
[15:24] smadja@orion:intermediate $ keytool -list -keystore ~/.keystore
Entrez le mot de passe du fichier de clés :
Type de fichier de clés : JKS
Fournisseur de fichier de clés : SUN
Votre fichier de clés d'accès contient 1 entrée
tomcat, 18 sept. 2017, PrivateKeyEntry,
Empreinte du certificat (SHA1) : E6:A5:67:D6:23:6C:2B:83:A8:EE:22:E6:75:94:F3:AD:C8:01:38:3B
[15:24] smadja@orion:intermediate $
Modifier le certificat importé pour qu'il ai le même mot de passe que le keystore (requis pour tomcat)
keytool -keypasswd -alias tomcat -keystore ~/.keystore
keytool -import -alias interneCa -keystore ~/.keystore -trustcacerts -file ca-chain.cert.pem
Créer un truststore et y ajouter la chaine de certification associé aux certificats d'authentification client :
keytool -import -alias interneCa -keystore /home/smadja/dev/pki/truststore -trustcacerts -file ca-chain.cert.pem
Configurer tomcat pour y ajouter l'authentification client en ajouter dans le fichier server.xml les paramètres suivants au connecteur SSL
truststoreFile="/home/smadja/dev/pki/truststore"
truststorePass="changeit"
truststoreType="JKS"
clientAuth="want"
Redémarrer tomcat
Une requête sur le site SSL doit maintenant activer la demande de soumission d'un certificat client à partir du navigateur :
Configurer Apache pour fonctionner en SSL (via la documentation https://httpd.apache.org/docs/2.4/fr/ssl/ssl_howto.html) et mod_jk
pour accéder à l'application
Créer le répertoire contenant les certificats de validation des certificats client (voir http://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcacertificatepath pour la documentation)
mkdir /apache_cadir
y recopier la chaine de certificat racine
cp ca-chain.cert.pem /apache_cadir
Créer le hash
cd /apache_cadir
ln -s ca-chain.cert.pem $(openssl x509 -in ca-chain.cert.pem -subject_hash -noout).0
Ajouter dans la configuration du site :
SSLCACertificatePath /apache_cadir
SSLVerifyClient optional
SSLOptions +StdEnvVars +ExportCertData
SSLVerifyDepth 10
JkOptions +ForwardSSLCertChain
Aller dans l'administration du site, onglet Accès
Y saisir les informations concernant le truststore et l'expression régulilère d'extraction (si besoin)
Créer si besoin le répertoire contenant les CRL.
Sauvegarder et vérifier dans les logs si l'authentification client est correctement activée.
L'authentification via le certificat est maintenant valide. L'utilisateur peut donc maintenant se connecter sans utiliser la mire de login.