<abbrtitle="LemonLDAP::NG">LL::NG</abbr> utilise le <ahref="http://httpd.apache.org/docs/current/mod/mod_ssl.html"class="urlextern"title="http://httpd.apache.org/docs/current/mod/mod_ssl.html"rel="nofollow">module SSL d'Apache</a>, comme n'importe quel <ahref="authapache.html"class="wikilink1"title="documentation:2.0:authapache">module d'authentification d'Apache</a> avec quelques fonctionnalités supplémentaires :
</p>
<ul>
<liclass="level1"><divclass="li"> Choix de n'importe quel attribut du certificat comme nom d'utilisateur principal</div>
</li>
<liclass="level1"><divclass="li"> Autoriser les clients sans certificat dans le chaînage avec d'autres méthodes d'authentification</div>
Toutes les options SSL sont documentées dans la <ahref="http://httpd.apache.org/docs/current/mod/mod_ssl.html"class="urlextern"title="http://httpd.apache.org/docs/current/mod/mod_ssl.html"rel="nofollow">page mod_ssl d'Apache</a>.
</p>
<p>
Ci-dessous les principales options utilisées par <abbrtitle="LemonLDAP::NG">LL::NG</abbr> :
</p>
<ul>
<liclass="level1"><divclass="li"><strong>SSLVerifyClient</strong> : mettre à <code>optional</code> pour autoriser les utilisateurs ne disposant pas d'un certificat valide à accéder à la page du portail <abbrtitle="LemonLDAP::NG">LL::NG</abbr> Pour basculer vers un autre backend d'authentification, utiliser le module <ahref="authmulti.html"class="wikilink1"title="documentation:2.0:authmulti">Multi</a>, par exemple : <code>Multi SSL;LDAP</code></div>
</li>
<liclass="level1"><divclass="li"><strong>SSLOptions</strong> : mettre à <code>+StdEnvVars</code> pour obtenir les champs du certificat dans les variables d'environnement</div>
</li>
<liclass="level1"><divclass="li"><strong>SSLUserName</strong> (optionnel) : champ du certificat à utiliser pour identifier pour identifier un utilisateur dans l'hôte virtuel du portail <abbrtitle="LemonLDAP::NG">LL::NG</abbr></div>
<h3class="sectionedit8"id="configuration_of_lemonldapng">Configuration de LemonLDAP::NG</h3>
<divclass="level3">
<p>
Dans le manager, aller dans <code>Paramètres généraux</code>><code>Modules d'authentification</code> et choisir SSL pour l'authentification.
</p>
<divclass="notetip">Vous pouvez ensuite choisir vos modules d'utilisateurs et de mots-de-passe.
</div>
<p>
Aller ensuite dans <code>Paramètres SSL</code> :
</p>
<ul>
<liclass="level1"><divclass="li"><strong>Niveau d'authentification</strong> : niveau d'authentification pour ce module</div>
</li>
<liclass="level1"><divclass="li"><strong>Champ extrait du certificat</strong> : champ du certificat affecté à la variable interne $user</div>
</li>
</ul>
</div><!-- EDIT8 SECTION "Configuration of LemonLDAP::NG" [2369-2794] -->
<h3class="sectionedit9"id="auto_reloading_ssl_certificates">Rechargement automatique des certificats SSL</h3>
<divclass="level3">
<p>
Problème connu : de nombreux navigateurs (Firefox, Chrome) enregistrent le fait qu'un certificat n'est pas disponible un certain temps. C'est particulièrement important pour les cartes à puce : lorsqu'elle n'est pas insérée avant que le navigateur ne démarre, l'utilisateur doit redémarrer ce dernier, ou au moins recharger la page (F5).
</p>
<p>
Il est possible d'éviter ceci avec un code AJAX et 3 "locations" Apache.
</p>
<p>
1. Modifier l'hôte virtuel du portail comme suit :
<liclass="level1"><divclass="li"> /index/ est une page non protégée pour afficher un bouton de test SSL</div>
</li>
<liclass="level1"><divclass="li"> /testssl/ est une page protégée par SSL qui vérifie le certificat</div>
</li>
<liclass="level1"><divclass="li"> /sslok/ est le nouveau portail LemonLDAP::NG. Il faut declarer la nouvelle url dans le manager : Portail → <abbrtitle="Uniform Resource Locator">URL</abbr>: <ahref="https://auth.example.com/sslok/"class="urlextern"title="https://auth.example.com/sslok/"rel="nofollow">https://auth.example.com/sslok/</a></div>
</li>
</ul>
<p>
2. Il faut ensuite construire la page Ajax, par exemple dans /index/bouton.html. Ça ressemble à :
<divclass="notewarning">Ce n'est pas compatible avec une chaîne d'authentification (voir Empiler plusieurs backends), en raison du paramètre Apache “SSLVerifyClient”, qui doit être mis à la valeur “require”