SSL mod_ssl.html.fr.utf8
Interaktion und Portierbarkeitunbekannt
|
|
Haftungsausschluß.utf8 KontaktUnknown {[0] [0] [0]}diese Dinge liegen außhalb unserer Verantwortung
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>mod_ssl - Serveur HTTP Apache Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" titl e="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.min.js" type="text/javascript">
</script>
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_ssl</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_ssl.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_ssl.html" title="Français"> fr </a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Chiffrement de haut niveau basé sur les protocoles Secure
Sockets Layer (SSL) et Transport Layer Security (TLS)</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>ssl_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_ssl.c</td></tr></table>
<h3>Sommaire</h3>
<p>Ce module fournit le support SSL v3 et TLS v1 au serveur HTTP
Apache. SSL v2 n'est plus supporté.</p>
<p>Ce module s'appuie sur <a href="https://www.openssl.org/">OpenSSL</a>
pour fournir le moteur de chiffrement.</p>
<p>D'autres détails, discussions et exemples sont fournis dans la <a href="../ssl/">documentation SSL</a>.</p>
</div>
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#envvars">Variables d'environnement</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#logformats">Formats de journaux
personnalisés</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#notes">Information à propos de la requête</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#expressionparser">Extension pour l'interprétation
des expressions</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#authzproviders">Fournisseurs d'autorisation
disponibles avec Require</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#sslcacertificatefile">SSLCACertificateFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslcacertificatepath">SSLCACertificatePath</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslcadnrequestfile">SSLCADNRequestFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslcadnrequestpath">SSLCADNRequestPath</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslcarevocationcheck">SSLCARevocationCheck</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslcarevocationfile">SSLCARevocationFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslcarevocationpath">SSLCARevocationPath</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslcertificatechainfile">SSLCertificateChainFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslcertificatefile">SSLCertificateFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslciphersuite">SSLCipherSuite</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslcompression">SSLCompression</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslcryptodevice">SSLCryptoDevice</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslengine">SSLEngine</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslfips">SSLFIPS</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslhonorcipherorder">SSLHonorCipherOrder</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslinsecurerenegotiation">SSLInsecureRenegotiation</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslocspdefaultresponder">SSLOCSPDefaultResponder</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslocspenable">SSLOCSPEnable</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslocspnoverify">SSLOCSPNoverify</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslocspoverrideresponder">SSLOCSPOverrideResponder</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslocspproxyurl">SSLOCSPProxyURL</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslocsprespondercertificatefile">SSLOCSPResponderCertificateFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslocsprespondertimeout">SSLOCSPResponderTimeout</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslocspresponsemaxage">SSLOCSPResponseMaxAge</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslocspresponsetimeskew">SSLOCSPResponseTimeSkew</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslocspuserequestnonce">SSLOCSPUseRequestNonce</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslopensslconfcmd">SSLOpenSSLConfCmd</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#ssloptions">SSLOptions</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslpassphrasedialog">SSLPassPhraseDialog</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslprotocol">SSLProtocol</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxycacertificatefile">SSLProxyCACertificateFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxycacertificatepath">SSLProxyCACertificatePath</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxycarevocationcheck">SSLProxyCARevocationCheck</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxycarevocationfile">SSLProxyCARevocationFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxycarevocationpath">SSLProxyCARevocationPath</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxycheckpeercn">SSLProxyCheckPeerCN</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxycheckpeerexpire">SSLProxyCheckPeerExpire</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxycheckpeername">SSLProxyCheckPeerName</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxyciphersuite">SSLProxyCipherSuite</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxyengine">SSLProxyEngine</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxyprotocol">SSLProxyProtocol</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxyverify">SSLProxyVerify</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslproxyverifydepth">SSLProxyVerifyDepth</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslrandomseed">SSLRandomSeed</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslrenegbuffersize">SSLRenegBufferSize</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslrequire">SSLRequire</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslrequiressl">SSLRequireSSL</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslsessioncache">SSLSessionCache</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslsessioncachetimeout">SSLSessionCacheTimeout</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslsessionticketkeyfile">SSLSessionTicketKeyFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslsessiontickets">SSLSessionTickets</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslsrpunknownuserseed">SSLSRPUnknownUserSeed</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslsrpverifierfile">SSLSRPVerifierFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslstaplingcache">SSLStaplingCache</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslstaplingerrorcachetimeout">SSLStaplingErrorCacheTimeout</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslstaplingfaketrylater">SSLStaplingFakeTryLater</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslstaplingforceurl">SSLStaplingForceURL</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslstaplingrespondertimeout">SSLStaplingResponderTimeout</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslstaplingresponsemaxage">SSLStaplingResponseMaxAge</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslstaplingresponsetimeskew">SSLStaplingResponseTimeSkew</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslstaplingreturnrespondererrors">SSLStaplingReturnResponderErrors</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslstaplingstandardcachetimeout">SSLStaplingStandardCacheTimeout</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslstrictsnivhostcheck">SSLStrictSNIVHostCheck</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslusername">SSLUserName</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslusestapling">SSLUseStapling</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslverifyclient">SSLVerifyClient</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sslverifydepth">SSLVerifyDepth</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_ssl">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_ssl">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
<ul class="seealso">
<li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="envvars" id="envvars">Variables d'environnement</a></h2>
<p>Ce module peut être configuré pour fournir aux espaces de nommage SSI
et CGI de nombreux éléments d'informations concernant SSL par le biais
de variables d'environnement supplémentaires. Par défaut, sauf pour
<code>HTTPS</code> et <code>SSL_TLS_SNI</code> qui sont toujours définies, ces
informations ne sont pas fournies pour des raisons de performances (Voir
la directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code>
<code>StdEnvVars</code> ci-dessous).
Les variables générées se trouvent dans la table ci-dessous.
Ces informations peuvent également être disponible sous des noms différents
à des fins de compatibilité ascendante. Reportez-vous au chapitre <a href="../ssl/ssl_compat.html">Compatibilité</a> pour plus de détails à
propos des variables de compatibilité.</p>
<table class="bordered"><tr class="header">
<th><a name="table3">Nom de la variable</a></th>
<th>Type de valeur</th>
<th>Description</th>
</tr>
<tr><td><code>HTTPS</code></td> <td>drapeau</td>
<td>HTTPS est utilisé.</td></tr>
<tr class="odd"><td><code>SSL_PROTOCOL</code></td> <td>chaîne</td>
<td>La version du protocole SSL (SSLv3, TLSv1, TLSv1.1, TLSv1.2)</td></tr>
<tr><td><code>SSL_SESSION_ID</code></td> <td>chaîne</td>
<td>L'identifiant de session SSL codé en hexadécimal</td></tr>
<tr class="odd"><td><code>SSL_SESSION_RESUMED</code></td> <td>chaîne</td>
<td>Session SSL initiale ou reprise. Note : plusieurs requêtes peuvent
être servies dans le cadre de la même session SSL (initiale ou reprise)
si les connexions persistantes (HTTP KeepAlive) sont utilisées</td></tr>
<tr><td><code>SSL_SECURE_RENEG</code></td> <td>chaîne</td>
<td><code>true</code> si la renégociation sécurisée est supportée,
<code>false</code> dans le cas contraire</td></tr>
<tr class="odd"><td><code>SSL_CIPHER</code></td> <td>chaîne</td>
<td>Le nom de l'algorithme de chiffrement</td></tr>
<tr><td><code>SSL_CIPHER_EXPORT</code></td> <td>chaîne</td>
<td><code>true</code> si l'algorithme de chiffrement est un algorithme
exporté</td></tr>
<tr class="odd"><td><code>SSL_CIPHER_USEKEYSIZE</code></td> <td>nombre</td>
<td>Nombre de bits de chiffrement (réellement utilisés)</td></tr>
<tr><td><code>SSL_CIPHER_ALGKEYSIZE</code></td> <td>nombre</td>
<td>Nombre de bits de chiffrement (possible)</td></tr>
<tr class="odd"><td><code>SSL_COMPRESS_METHOD</code></td> <td>chaîne</td>
<td>Méthode de compression SSL négociée</td></tr>
<tr><td><code>SSL_VERSION_INTERFACE</code></td> <td>chaîne</td>
<td>La version du programme mod_ssl</td></tr>
<tr class="odd"><td><code>SSL_VERSION_LIBRARY</code></td> <td>chaîne</td>
<td>La version du programme OpenSSL</td></tr>
<tr><td><code>SSL_CLIENT_M_VERSION</code></td> <td>chaîne</td>
<td>La version du certificat client</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_M_SERIAL</code></td> <td>chaîne</td>
<td>Le numéro de série du certificat client</td></tr>
<tr><td><code>SSL_CLIENT_S_DN</code></td> <td>chaîne</td>
<td>Le DN sujet du certificat client</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_S_DN_</code><em>x509</em></td> <td>chaîne</td>
<td>Elément du DN sujet du client</td></tr>
<tr><td><code>SSL_CLIENT_SAN_Email_</code><em>n</em></td> <td>chaîne</td>
<td>Les entrées d'extension subjectAltName du certificat client de type rfc822Name</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_SAN_DNS_</code><em>n</em></td> <td>chaîne</td>
<td>Les entrées d'extension subjectAltName du certificat client de type dNSName</td></tr>
<tr><td><code>SSL_CLIENT_SAN_OTHER_msUPN_</code><em>n</em></td>
<td>chaîne</td> <td>Extensions subjectAltName de type otherName du
certificat client, forme Microsoft du nom principal de l'utilisateur (OID 1.3.6.1.4.1.311.20.2.3)</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_I_DN</code></td> <td>chaîne</td>
<td>DN de l'émetteur du certificat du client</td></tr>
<tr><td><code>SSL_CLIENT_I_DN_</code><em>x509</em></td> <td>chaîne</td>
<td>Elément du DN de l'émetteur du certificat du client</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_V_START</code></td> <td>chaîne</td>
<td>Validité du certificat du client (date de début)</td></tr>
<tr><td><code>SSL_CLIENT_V_END</code></td> <td>chaîne</td>
<td>Validité du certificat du client (date de fin)</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_V_REMAIN</code></td> <td>chaîne</td>
<td>Nombre de jours avant expiration du certificat du client</td></tr>
<tr><td><code>SSL_CLIENT_A_SIG</code></td> <td>chaîne</td>
<td>Algorithme utilisé pour la signature du certificat du client</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_A_KEY</code></td> <td>chaîne</td>
<td>Algorithme utilisé pour la clé publique du certificat du client</td></tr>
<tr><td><code>SSL_CLIENT_CERT</code></td> <td>chaîne</td>
<td>Certificat du client au format PEM</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_CERT_CHAIN_</code><em>n</em></td>
<td>chaîne</td> <td>Certificats de la chaîne de certification du
client au format PEM</td></tr>
<tr><td><code>SSL_CLIENT_CERT_RFC4523_CEA</code></td> <td>chaîne</td>
<td>Numéro de série et fournisseur du certificat. le format correspond à
celui de la CertificateExactAssertion dans la RFC4523</td></tr>
<tr class="odd"><td><code>SSL_CLIENT_VERIFY</code></td> <td>chaîne</td>
<td><code>NONE</code>, <code>SUCCESS</code>, <code>GENEROUS</code> ou
<code>FAILED:</code><em>raison</em></td></tr>
<tr><td><code>SSL_SERVER_M_VERSION</code></td> <td>chaîne</td>
<td>La version du certificat du serveur</td></tr>
<tr class="odd"><td><code>SSL_SERVER_M_SERIAL</code></td> <td>chaîne</td> <td>
The serial of the server certificate</td></tr>
<tr><td><code>SSL_SERVER_S_DN</code></td> <td>chaîne</td>
<td>DN sujet du certificat du serveur</td></tr>
<tr class="odd"><td><code>SSL_SERVER_S_DN_</code><em>x509</em></td> <td>chaîne</td>
<td>Elément du DN sujet du certificat du serveur</td></tr>
<tr><td><code>SSL_SERVER_SAN_Email_</code><em>n</em></td>
<td>chaîne</td> <td>Les entrées d'extension subjectAltName du
certificat de serveur de type rfc822Name</td></tr>
<tr class="odd"><td><code>SSL_SERVER_SAN_DNS_</code><em>n</em></td> <td>chaîne</td>
<td>Les entrées d'extension subjectAltName du
certificat de serveur de type dNSName</td></tr>
<tr><td><code>SSL_SERVER_SAN_OTHER_dnsSRV_</code><em>n</em></td>
<td>chaîne</td> <td>Extensions subjectAltName de type otherName du
certificat serveur, sous la forme SRVName (OID 1.3.6.1.5.5.7.8.7, RFC 4985)</td></tr>
<tr class="odd"><td><code>SSL_SERVER_I_DN</code></td> <td>chaîne</td>
<td>DN de l'émetteur du certificat du serveur</td></tr>
<tr><td><code>SSL_SERVER_I_DN_</code><em>x509</em></td> <td>chaîne</td>
<td>Elément du DN de l'émetteur du certificat du serveur</td></tr>
<tr class="odd"><td><code>SSL_SERVER_V_START</code></td> <td>chaîne</td>
<td>Validité du certificat du serveur (date de dédut)</td></tr>
<tr><td><code>SSL_SERVER_V_END</code></td> <td>chaîne</td>
<td>Validité du certificat du serveur (date de fin)</td></tr>
<tr class="odd"><td><code>SSL_SERVER_A_SIG</code></td> <td>chaîne</td>
<td>Algorithme utilisé pour la signature du certificat du serveur</td></tr>
<tr><td><code>SSL_SERVER_A_KEY</code></td> <td>chaîne</td>
<td>Algorithme utilisé pour la clé publique du certificat du serveur</td></tr>
<tr class="odd"><td><code>SSL_SERVER_CERT</code></td> <td>chaîne</td>
<td>Certificat du serveur au format PEM</td></tr>
<tr><td><code>SSL_SRP_USER</code></td> <td>chaîne</td>
<td>nom d'utilisateur SRP</td></tr>
<tr class="odd"><td><code>SSL_SRP_USERINFO</code></td> <td>chaîne</td>
<td>informations sur l'utilisateur SRP</td></tr>
<tr><td><code>SSL_TLS_SNI</code></td> <td>string</td>
<td>Contenu de l'extension SNI TLS (si supporté par ClientHello)</td></tr>
</table>
<p><em>x509</em> spécifie un élément de DN X.509 parmi
<code>C,ST,L,O,OU,CN,T,I,G,S,D,UID,Email</code>. A partir de la version
2.2.0 d'Apache, <em>x509</em> peut aussi comporter un suffixe numérique
<code>_n</code>. Si le DN en question comporte plusieurs attributs de
noms identiques, ce suffixe constitue un index débutant à zéro et
permettant de sélectionner un
attribut particulier. Par exemple, si le DN sujet du certificat du
serveur comporte deux champs OU, on peut utiliser
<code>SSL_SERVER_S_DN_OU_0</code> et <code>SSL_SERVER_S_DN_OU_1</code>
pour référencer chacun d'entre eux. Un nom de variable sans suffixe
<code>_n</code> est équivalent au même nom avec le suffixe
<code>_0</code>, ce qui correspond au premier attribut (ou au seul)
caractérisant le DN.
Lorsque la table d'environnement est remplie en utilisant l'option
<code>StdEnvVars</code> de la directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code>, le premier attribut (ou le
seul) caractérisant le DN est enregistré avec un nom sans suffixe ;
autrement dit, aucune entrée possédant comme suffixe <code>_0</code>
n'est enregistrée.</p>
<p>A partir de la version 2.4.32 de httpd, on peut ajouter le suffixe
<em>_RAW</em> à <em>x509</em> dans un composant DN afin d'empêcher la conversion
de la valeur de l'attribut en UTF-8. Il doit être placé après le suffixe index
(s'il existe). On utilisera par exemple <code>SSL_SERVER_S_DN_OU_RAW</code> ou
<code>SSL_SERVER_S_DN_OU_0_RAW</code>.</p>
<p>Le format des variables <em>*_DN</em> a changé depuis la version
2.3.11 d'Apache HTTPD. Voir l'option <code>LegacyDNStringFormat</code>
de la directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code> pour
plus de détails.</p>
<p><code>SSL_CLIENT_V_REMAIN</code> n'est disponible qu'à partir de la
version 2.1.</p>
<p>Plusieurs variables d'environnement additionnelles peuvent être
utilisées dans les expressions <code class="directive">SSLRequire</code>, ou
dans les formats de journalisation personnalisés :</p>
<div class="note"><pre>HTTP_USER_AGENT PATH_INFO AUTH_TYPE
HTTP_REFERER QUERY_STRING SERVER_SOFTWARE
HTTP_COOKIE REMOTE_HOST API_VERSION
HTTP_FORWARDED REMOTE_IDENT TIME_YEAR
HTTP_HOST IS_SUBREQ TIME_MON
HTTP_PROXY_CONNECTION DOCUMENT_ROOT TIME_DAY
HTTP_ACCEPT SERVER_ADMIN TIME_HOUR
THE_REQUEST SERVER_NAME TIME_MIN
REQUEST_FILENAME SERVER_PORT TIME_SEC
REQUEST_METHOD SERVER_PROTOCOL TIME_WDAY
REQUEST_SCHEME REMOTE_ADDR TIME
REQUEST_URI REMOTE_USER</pre></div>
<p>Dans ces contextes, deux formats spéciaux peuvent aussi être utilisés
:</p>
<dl>
<dt><code>ENV:<em>nom_variable</em></code></dt>
<dd>Correspond à la variable d'environnement standard
<em>nom_variable</em>.</dd>
<dt><code>HTTP:<em>nom_en-tête</em></code></dt>
<dd>Correspond à la valeur de l'en-tête de requête dont le nom est
<em>nom_en-tête</em>.</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="logformats" id="logformats">Formats de journaux
personnalisés</a></h2>
<p>Lorsque <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> est compilé dans le serveur Apache
ou même chargé (en mode DSO), des fonctions supplémentaires sont
disponibles pour le <a href="mod_log_config.html#formats">Format de journal personnalisé</a> du
module <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>. A ce titre, la fonction de
format d'eXtension ``<code>%{</code><em>nom-var</em><code>}x</code>''
peut être utilisée pour présenter en extension toute variable fournie
par tout module, et en particulier celles fournies par mod_ssl et que
vous trouverez dans la table ci-dessus.</p>
<p>
A des fins de compatibilité ascendante, il existe une fonction de format
cryptographique supplémentaire
``<code>%{</code><em>nom</em><code>}c</code>''. Vous trouverez toutes
les informations à propos de cette fonction dans le chapitre <a href="../ssl/ssl_compat.html">Compatibilité</a>.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">CustomLog "logs/ssl_request_log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"</pre>
</div>
<p>Ces formats sont disponibles même si l'option <code>StdEnvVars</code> de la
directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code> n'a pas été
définie.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="notes" id="notes">Information à propos de la requête</a></h2>
<p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> enregistre des informations à propos de la
requête que l'on peut restituer dans les journaux avec la chaîne de
format <code>%{<em>nom</em>}n</code> via le module
<code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>.</p>
<p>Les informations enregistrées sont les suivantes :</p>
<dl>
<dt><code>ssl-access-forbidden</code></dt>
<dd>Cette information contient la valeur <code>1</code> si l'accès a
été refusé suite à une directive <code class="directive">SSLRequire</code> ou
<code class="directive">SSLRequireSSL</code>.</dd>
<dt><code>ssl-secure-reneg</code></dt>
<dd>Si <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> a été compilé avec une version
d'OpenSSL qui supporte la renégociation sécurisée, si SSL est utilisé
pour la connexion courante et si le client supporte lui aussi la
renégociation sécurisée, cette information contiendra la valeur
<code>1</code>. Si le client ne supporte pas la renégociation
sécurisée, l'information contiendra la valeur <code>0</code>. Si
<code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> n'a pas été compilé avec une version
d'OpenSSL qui supporte la renégociation sécurisée, ou si SSL n'est pas
utilisé pour la connexion courante, le contenu de l'information ne
sera pas défini.</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="expressionparser" id="expressionparser">Extension pour l'interprétation
des expressions</a></h2>
<p>Lorsque <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> est compilé statiquement avec
Apache, ou même chargé dynamiquement (en tant que module DSO), toute <a name="envvars">variable</a> en provenance de <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> peut
être utilisée pour l'<a href="../expr.html">interprétation des
expression ap_expr</a>. Les variables peuvent être référencées en
utilisant la syntaxe ``<code>%{</code><em>varname</em><code>}</code>''.
A partir de la version 2.4.18, on peut aussi utiliser la syntaxe de
style <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
``<code>%{SSL:</code><em>varname</em><code>}</code>'', ou la syntaxe de
style fonction ``<code>ssl(</code><em>varname</em><code>)</code>''.</p>
<div class="example"><h3>Exemple (en utilisant <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code>)</h3><pre class="prettyprint lang-config">Header set X-SSL-PROTOCOL "expr=%{SSL_PROTOCOL}"
Header set X-SSL-CIPHER "expr=%{SSL:SSL_CIPHER}"</pre>
</div>
<p>Cette fonctionnalité est disponible même si l'option
<code>StdEnvVars</code> de la directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code> n'a pas été définie.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="authzproviders" id="authzproviders">Fournisseurs d'autorisation
disponibles avec Require</a></h2>
<p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> propose quelques fournisseurs
d'autorisation à utiliser avec la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> du module
<code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>.</p>
<h3><a name="reqssl" id="reqssl">Require ssl</a></h3>
<p>Le fournisseur <code>ssl</code> refuse l'accès si une connexion
n'est pas chiffrée avec SSL. L'effet est similaire à celui de la
directive <code class="directive">SSLRequireSSL</code>.</p>
<pre class="prettyprint lang-config">Require ssl</pre>
<h3><a name="reqverifyclient" id="reqverifyclient">Require ssl-verify-client</a></h3>
<p>Le fournisseur <code>ssl</code> autorise l'accès si
l'utilisateur est authentifié via un certificat client valide. Ceci
n'a un effet que si <code>SSLVerifyClient optional</code> est actif.</p>
<p>Dans l'exemple suivant, l'accès est autorisé si le client est
authentifié via un certificat client ou par nom d'utilisateur/mot de
passe :</p>
<pre class="prettyprint lang-config">Require ssl-verify-client
Require valid-user</pre>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="sslcacertificatefile" id="sslcacertificatefile">Directive</a> <a name="SSLCACertificateFile" id="SSLCACertificateFile">SSLCACertificateFile</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant une concaténation des certificats de CA
codés en PEM pour l'authentification des clients</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCACertificateFile <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de définir le fichier <em>tout-en-un</em> où vous
pouvez rassembler les certificats des Autorités de Certification (CAs)
pour les clients auxquels vous avez à faire. On les utilise pour
l'authentification des clients. Un tel fichier contient la simple
concaténation des différents fichiers de certificats codés en PEM, par
ordre de préférence. Cette directive peut être utilisée à la place et/ou
en complément de la directive <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCACertificateFile "/usr/local/apache2/conf/ssl.crt/ca-bundle-client.crt"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="sslcacertificatepath" id="sslcacertificatepath">Directive</a> <a name="SSLCACertificatePath" id="SSLCACertificatePath">SSLCACertificatePath</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire des certificats de CA codés en PEM pour
l'authentification des clients</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCACertificatePath <em>chemin-répertoire</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de définir le répertoire où sont stockés les
certificats des Autorités de Certification (CAs) pour les clients
auxquels vous avez à faire. On les utilise pour vérifier le certificat
du client au cours de l'authentification de ce dernier.</p>
<p>
Les fichiers de ce répertoire doivent être codés en PEM et ils sont
accédés via des noms de fichier sous forme de condensés ou hash. Il ne
suffit donc pas de placer les fichiers de certificats dans ce répertoire
: vous devez aussi créer des liens symboliques nommés
<em>valeur-de-hashage</em><code>.N</code>, et vous devez toujours vous
assurer que ce répertoire contient les liens symboliques appropriés.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCACertificatePath "/usr/local/apache2/conf/ssl.crt/"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="sslcadnrequestfile" id="sslcadnrequestfile">Directive</a> <a name="SSLCADNRequestFile" id="SSLCADNRequestFile">SSLCADNRequestFile</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concaténation des certificats de CA
codés en PEM pour la définition de noms de CA acceptables</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCADNRequestFile <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>Lorsque mod_ssl demande un certificat client, une liste de <em>noms
d'Autorités de Certification acceptables</em> est envoyée au client au
cours de la phase d'initialisation de la connexion SSL. Le client peut
alors utiliser cette liste de noms de CA pour sélectionner un certificat
client approprié parmi ceux dont il dispose.</p>
<p>Si aucune des directives <code class="directive"><a href="#sslcadnrequestpath">SSLCADNRequestPath</a></code> ou <code class="directive"><a href="#sslcadnrequestfile">SSLCADNRequestFile</a></code> n'est définie, la liste
de noms de CsA acceptables envoyée au client est la liste des noms de
tous les certificats de CA spécifiés par les directives <code class="directive"><a href="#sslcacertificatefile">SSLCACertificateFile</a></code> et <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code> ; en d'autres termes,
c'est la liste des noms de CAs qui sera effectivement utilisée pour
vérifier le certificat du client.</p>
<p>Dans certaines situations, il est utile de pouvoir envoyer
une liste de noms de CA acceptables qui diffère de la liste des CAs
effectivement utilisés pour vérifier le certificat du client ;
considérons par exemple le cas où le certificat du client est signé par
des CAs intermédiaires. On peut ici utiliser les directives <code class="directive"><a href="#sslcadnrequestpath">SSLCADNRequestPath</a></code> et/ou <code class="directive"><a href="#sslcadnrequestfile">SSLCADNRequestFile</a></code>, et les noms de CA
acceptables seront alors extraits de l'ensemble des certificats contenus
dans le répertoire et/ou le fichier définis par cette paire de
directives.</p>
<p><code class="directive"><a href="#sslcadnrequestfile">SSLCADNRequestFile</a></code> doit
spécifier un fichier <em>tout-en-un</em> contenant une concaténation des
certificats de CA codés en PEM.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCADNRequestFile "/usr/local/apache2/conf/ca-names.crt"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="sslcadnrequestpath" id="sslcadnrequestpath">Directive</a> <a name="SSLCADNRequestPath" id="SSLCADNRequestPath">SSLCADNRequestPath</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire contenant des fichiers de certificats de CA
codés en PEM pour la définition de noms de CA acceptables</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCADNRequestPath <em>chemin-répertoire</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>Cette directive optionnelle permet de définir la liste de <em>noms de
CAs acceptables</em> qui sera envoyée au client lorsqu'un certificat de
client est demandé. Voir la directive <code class="directive"><a href="#sslcadnrequestfile">SSLCADNRequestFile</a></code> pour plus de
détails.</p>
<p>Les fichiers de ce répertoire doivent être codés en PEM et ils sont
accédés via des noms de fichier sous forme de condensés ou hash. Il ne
suffit donc pas de placer les fichiers de certificats dans ce répertoire
: vous devez aussi créer des liens symboliques nommés
<em>valeur-de-hashage</em><code>.N</code>, et vous devez toujours vous
assurer que ce répertoire contient les liens symboliques appropriés.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCADNRequestPath "/usr/local/apache2/conf/ca-names.crt/"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="sslcarevocationcheck" id="sslcarevocationcheck">Directive</a> <a name="SSLCARevocationCheck" id="SSLCARevocationCheck">SSLCARevocationCheck</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la vérification des révocations basée sur les CRL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCARevocationCheck chain|leaf|none [<em>flag</em>s ...]</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLCARevocationCheck none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Le drapeau optionnel <em>flag</em>s est disponible à partir de la
version 2.4.21 du serveur HTTP Apache</td></tr>
</table>
<p>
Active la vérification des révocations basée sur les Listes de
Révocations de Certificats (CRL). Au moins une des directives <code class="directive"><a href="#sslcarevocationfile">SSLCARevocationFile</a></code> ou <code class="directive"><a href="#sslcarevocationpath">SSLCARevocationPath</a></code> doit être définie.
Lorsque cette directive est définie à <code>chain</code> (valeur
recommandée), les vérifications CRL sont effectuées sur tous les
certificats de la chaîne, alors que la valeur <code>leaf</code> limite
la vérification au certificat hors chaîne (la feuille).
</p>
<p><em>flag</em>s peut prendre comme valeurs </p>
<ul>
<li><code>no_crl_for_cert_ok</code>
<p>
Avant la version 2.3.15, les vérifications CRL dans mod_ssl
réussissaient même si aucune CRL n'était trouvée dans les chemins
définis par les directives <code class="directive"><a href="#sslcarevocationfile">SSLCARevocationFile</a></code> ou <code class="directive"><a href="#sslcarevocationpath">SSLCARevocationPath</a></code>.</p>
<p>Le comportement a
changé avec l'introduction de la directive
<code class="directive">SSLCARevocationFile</code> : par défaut avec
<code>chain</code> ou <code>leaf</code>, les CRLs <em>doivent</em> être présentes pour que la
validation réussisse ; dans le cas contraire, elle échouera avec une
erreur <code>"unable to get certificate CRL"</code>.</p>
<p>La valeur <code>no_crl_for_cert_ok</code> du drapeau <em>flag</em> permet de
retrouver le comportement précédent.</p>
</li>
</ul>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCARevocationCheck chain</pre>
</div>
<div class="example"><h3>Compatibilité avec la branche 2.2</h3><pre class="prettyprint lang-config">SSLCARevocationCheck chain no_crl_for_cert_ok</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="sslcarevocationfile" id="sslcarevocationfile">Directive</a> <a name="SSLCARevocationFile" id="SSLCARevocationFile">SSLCARevocationFile</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concaténation des CRLs des CA codés en
PEM pour l'authentification des clients</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCARevocationFile <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de définir le fichier <em>tout-en-un</em> où sont
rassemblées les Listes de Révocation de Certificats (CRLs) des Autorités
de certification (CAs) pour les clients auxquels vous avez à faire. On
les utilise pour l'authentification des clients. Un tel fichier contient
la simple concaténation des différents fichiers de CRLs codés en PEM,
dans l'ordre de préférence. Cette directive peut être utilisée à la
place et/ou en complément de la directive <code class="directive"><a href="#sslcarevocationpath">SSLCARevocationPath</a></code>.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCARevocationFile
"/usr/local/apache2/conf/ssl.crl/ca-bundle-client.crl"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="sslcarevocationpath" id="sslcarevocationpath">Directive</a> <a name="SSLCARevocationPath" id="SSLCARevocationPath">SSLCARevocationPath</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire des CRLs de CA codés en PEM pour
l'authentification des clients</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCARevocationPath <em>chemin-répertoire</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive permet de définir le répertoire où sont stockées les
Listes de Révocation de Certificats (CRL) des Autorités de Certification
(CAs) pour les clients auxquels vous avez à faire. On les utilise pour
révoquer les certificats des clients au cours de l'authentification de
ces derniers.</p>
<p>
Les fichiers de ce répertoire doivent être codés en PEM et ils sont
accédés via des noms de fichier sous forme de condensés ou hash. Il ne
suffit donc pas de placer les fichiers de CRL dans ce répertoire
: vous devez aussi créer des liens symboliques nommés
<em>valeur-de-hashage</em><code>.N</code>, et vous devez toujours vous
assurer que ce répertoire contient les liens symboliques appropriés.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCARevocationPath "/usr/local/apache2/conf/ssl.crl/"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="sslcertificatechainfile" id="sslcertificatechainfile">Directive</a> <a name="SSLCertificateChainFile" id="SSLCertificateChainFile">SSLCertificateChainFile</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant les certificats de CA du serveur codés en
PEM</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCertificateChainFile <var>file-path</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<div class="note"><h3>SSLCertificateChainFile est obsolète</h3>
<p><code>SSLCertificateChainFile</code> est devenue obsolète avec la
version 2.4.8, lorsque la directive
<code class="directive"><a href="#sslcertificatefile">SSLCertificateFile</a></code> a été étendue
pour supporter aussi les certificats de CA intermédiaires dans le
fichier de certificats du serveur.</p>
</div>
<p>
Cette directive permet de définir le fichier optionnel
<em>tout-en-un</em> où vous pouvez rassembler les certificats des
Autorités de Certification (CA) qui forment la chaîne de certification
du certificat du serveur. Cette chaîne débute par le certificat de la CA
qui a délivré le certificat du serveur et peut remonter jusqu'au
certificat de la CA racine. Un tel fichier contient la simple
concaténation des différents certificats de CA codés en PEM, en général
dans l'ordre de la chaîne de certification.</p>
<p>Elle doit être utilisée à la place et/ou en complément de la
directive <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>
pour construire explicitement la chaîne de certification du serveur qui
est envoyée au navigateur en plus du certificat du serveur. Elle s'avère
particulièrement utile pour éviter les conflits avec les certificats de
CA lorsqu'on utilise l'authentification du client. Comme le fait de
placer un certificat de CA de la chaîne de certification du serveur dans
la directive <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code> produit le même effet
pour la construction de la chaîne de certification, cette directive a
pour effet colatéral de faire accepter les certificats clients fournis
par cette même CA, au cours de l'authentification du client.</p>
<p>
Soyez cependant prudent : fournir la chaîne de certification ne
fonctionne que si vous utilisez un <em>simple</em> certificat de
serveur RSA <em>ou</em> DSA. Si vous utilisez une paire de certificats
couplés RSA+DSA , cela ne fonctionnera que si les deux certificats
utilisent vraiment <em>la même</em> chaîne de certification. Dans le cas
contraire, la confusion risque de s'installer au niveau des
navigateurs.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLCertificateChainFile "/usr/local/apache2/conf/ssl.crt/ca.crt"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="sslcertificatefile" id="sslcertificatefile">Directive</a> <a name="SSLCertificateFile" id="SSLCertificateFile">SSLCertificateFile</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier de données contenant les informations de certificat X.509 du serveur
codées au format PEM ou identificateur de jeton</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCertificateFile <var>file-path</var>|<var>certid</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>L'option <var>certid</var> est disponible à partir de la version
2.4.42 du serveur HTTP Apache.</td></tr>
</table>
<p>Cette directive permet de définir le fichier de données contenant les
informations de certificat X.509 du serveur codées au format PEM ou
l'identificateur de certificat via un jeton cryptographique. Si on utilise un
fichier au format PEM, ce dernier doit contenir au minimum un certificat
d'entité finale (feuille).
La directive peut être utilisée plusieurs fois (elle référence des
fichiers différents) pour accepter plusieurs algorithmes
d'authentification au niveau du serveur - souvent RSA, DSA et ECC. Le
nombre d'algorithmes supportés dépend de la version d'OpenSSL utilisée
avec mod_ssl : à partir de la version 1.0.0, la commande <code>openssl
list-public-key-algorithms</code> affiche la liste des algorithmes
supportés. Voir aussi la note ci-dessous à propos des limitations des versions
d'OpenSSL antérieures à 1.0.2 et la manière de les contourner.
</p>
<p>Les fichiers peuvent aussi contenir des certificats de CA
intermédiaires triés depuis la feuille vers la racine. Cette
fonctionnalité est disponible depuis la version 2.4.8 du serveur HTTP
Apache, et rend obsolète la directive <code class="directive"><a href="#sslcertificatechainfile">SSLCertificateChainFile</a></code>. A partir de la
version 1.0.2 d'OpenSSL, il est alors possible de configurer la chaîne
de certification en fonction du certificat.</p>
<p>Depuis la version 2.4.7 du serveur HTTP Apache, on peut aussi ajouter
des paramètres DH personnalisés et un nom EC
curve pour les clés éphémères à la fin du premier fichier défini par la
directive <code class="directive"><a href="#sslcertificatefile">SSLCertificateFile</a></code>.
Ces paramètres peuvent être générés avec les commandes <code>openssl
dhparam</code> et <code>openssl ecparam</code>, et ils peuvent être
ajoutés tel quel à la fin du premier fichier de certificat. En effet,
seul le premier fichier de certificat défini peut être utilisé pour
enregistrer des paramètres personnalisés, car ces derniers s'appliquent
indépendamment de l'algorithme d'authentification utilisé.
</p>
<p>Enfin, il est aussi possible d'ajouter la clé privée du certificat de
l'entité finale au fichier de certificat, ce qui permet de se passer
d'une directive <code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code> séparée. Cette
pratique est cependant fortement déconseillée. Dans ce cas, les fichiers de
certificat qui contiennent de telles clés embarquées doivent être définis
après les certificats qui utilisent un fichier de clé séparé. En outre,
si la clé est chiffrée, une boîte de dialogue pour entrer le mot de
passe de la clé s'ouvre au démarrage du serveur.
</p>
<p>Plutôt que de stocker les certificats et les clés privées dans des fichiers,
on peut utiliser un identificateur de certificat pour identifier un certificat
stocké dans un jeton. Actuellement, seuls les <a href="https://tools.ietf.org/html/rfc7512">URIs PKCS#11</a> sont reconnus comme
identificateurs de certificats et peuvent être utilisés en conjonction avec le
moteur ou le fournisseur OpenSSL <code>pkcs11</code>. Si la directive <code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code> est absente, le certificat et
la clé privée peuvent être chargés avec l'identificateur spécifié via la
directive <code class="directive"><a href="#sslcertificatefile">SSLCertificateFile</a></code>.</p>
<div class="note">
<h3>Interopérabilité des paramètres DH avec les nombres premiers de
plus de 1024 bits</h3>
<p>
Depuis la version 2.4.7, mod_ssl utilise des
paramètres DH standardisés avec des nombres premiers de 2048, 3072 et
4096 bits, et avec des nombres premiers de 6144 et 8192 bits depuis la
version 2.4.10 (voir <a href="http://www.ietf.org/rfc/rfc3526.txt">RFC
3526</a>), et les fournit aux clients en fonction de la longueur de la
clé du certificat RSA/DSA. En particulier avec les clients basés sur
Java (versions 7 et antérieures), ceci peut provoquer des erreurs au
cours de la négociation - voir cette <a href="../ssl/ssl_faq.html#javadh">réponse de la FAQ SSL</a> pour
contourner les problèmes de ce genre.
</p>
</div>
<div class="note">
<h3>Paramètres DH par défaut lorsqu'on utilise plusieurs certificats et une
version d'OpenSSL antérieure à 1.0.2.</h3>
<p>
Lorsqu'on utilise plusieurs certificats pour supporter différents algorithmes
d'authentification (comme RSA, DSA, mais principalement ECC) et une
version d'OpenSSL antérieure à 1.0.2, il est recommandé soit d'utiliser des
paramètres DH spécifiques (solution à privilégier) en les ajoutant au premier
fichier certificat (comme décrit ci-dessus), soit d'ordonner les directives
<code class="directive">SSLCertificateFile</code> de façon à ce que les certificats
RSA/DSA soit placés <strong>après</strong> les certificats ECC.
</p>
<p>
Cette limitation est présente dans les anciennes versions d'OpenSSL qui
présentent toujours le dernier certificat configuré, au lieu
de laisser le serveur HTTP Apache déterminer le certificat sélectionné lors de
la phase de négociation de la connexion (lorsque les paramètres DH doivent être
envoyés à l'hôte distant).
De ce fait, le serveur peut sélectionner des paramètres DH par défaut basés sur
la longueur de la clé du mauvais certificat (les clés ECC sont beaucoup plus
petites que les clés RSA/DSA et leur longueur n'est pas pertinente pour la
sélection des nombres premiers DH).
</p>
<p>
Ce problème peut être résolu en créant et configurant des paramètres DH
spécifiques (comme décrit ci-dessus), car ils l'emportent toujours sur les
paramètres DH par défaut, et vous pourrez ainsi utiliser une longueur spécifique
et appropriée.
</p>
</div>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># Exemple utilisant un fichier codé en PEM.
SSLCertificateFile "/usr/local/apache2/conf/ssl.crt/server.crt"
# Exemple d'utilisation d'un certificat et d'une clé privés issus d'un jeton
# PKCS#11 :
SSLCertificateFile "pkcs11:token=My%20Token%20Name;id=45"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="sslcertificatekeyfile" id="sslcertificatekeyfile">Directive</a> <a name="SSLCertificateKeyFile" id="SSLCertificateKeyFile">SSLCertificateKeyFile</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la clé privée du serveur codée en
PEM</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCertificateKeyFile <var>file-path</var>|<var>keyid</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td><var>keyid</var> est disponible à partir de la version 2.4.42 du
serveur HTTP Apache.</td></tr>
</table>
<p>
Cette directive permet de définir le fichier contenant la clé privée du serveur
codée en PEM ou l'identifiant de la clé via un jeton cryptographique défini. Si
la clé privée est chiffrée, une boîte de dialogue demandant le mot de passe de
cette dernière s'ouvre au démarrage du serveur.</p>
<p>
Cette directive peut être utilisée plusieurs fois pour référencer
différents noms de fichiers, afin de supporter plusieurs algorithmes
pour l'authentification du serveur. A chaque directive <code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code> doit être associée
une directive <code class="directive">SSLCertificateFile</code> correspondante.
</p>
<p>
La clé privée peut aussi être ajoutée au fichier défini par la directive
<code class="directive"><a href="#sslcertificatefile">SSLCertificateFile</a></code>, mais cette
pratique est fortement déconseillée. Dans ce cas, les fichiers de
certificats qui comportent une telle clé doivent être définis après les
certificats qui utilisent un fichier de clé séparé.</p>
<p>Plutôt que de stocker des clés privées dans des fichiers, il est possible
d'identifier une clé privée via un identifiant stocké dans un jeton.
Actuellement, seuls les <a href="https://tools.ietf.org/html/rfc7512">PKCS#11
URIs</a> sont reconnus comme identifiants de clés privées et peuvent être
utilisés en conjonction avec le moteur ou le fournisseur OpenSSL
<code>pkcs11</code>.</p>
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># Pour utiliser une clé privée stockée dans fichier encodé PEM :
SSLCertificateKeyFile "/usr/local/apache2/conf/ssl.key/server.key"
# Pour utiliser une clé privée à partir d'un jeton PKCS#11 :
SSLCertificateKeyFile "pkcs11:token=My%20Token%20Name;id=45"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="sslciphersuite" id="sslciphersuite">Directive</a> <a name="SSLCipherSuite" id="SSLCipherSuite">SSLCipherSuite</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Algorithmes de chiffrement disponibles pour la négociation
au cours de l'initialisation de la connexion SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLCipherSuite [<em>protocol</em>] <em>cipher-spec</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLCipherSuite DEFAULT (dépend de la version d'OpenSSL
installée)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cette directive complexe utilise la chaîne <em>cipher-spec</em>
contenant la liste des algorithmes de chiffrement OpenSSL que le client
peut utiliser au cours de la phase d'initialisation de la connexion SSL. La
spécification optionnelle du protocole permet de configurer la suite
d'algorithmes de chiffrement pour une version spécifique de SSL. Une des valeurs
possibles est "SSL" pour toutes les versions du protocole SSL jusqu'à TLSv1.2
compris.
</p>
<p>
Notez que cette directive peut être utilisée aussi bien dans un contexte
de serveur que dans un contexte de répertoire. Dans un contexte de
serveur, elle s'applique à l'initialisation SSL standard lorsqu'une
connexion est établie. Dans un contexte de répertoire, elle force une
renégociation SSL avec la liste d'algorithmes de chiffrement spécifiée
après la lecture d'une requête HTTP, mais avant l'envoi de la réponse
HTTP.</p>
<p>
Si la bibliothèque SSL supporte TLSv1.3 (versions d'OpenSSL 1.1.1 et
supérieures), il est possible de spécifier le paramètre "TLSv1.3" pour
configurer la suite d'algorithmes de chiffrement pour ce protocole. Comme
TLSv1.3 n'autorise pas la renégociation, spécifier pour lui des algorithmes de
chiffrement dans un contexte de répertoire n'est pas autorisé</p>
<p>
Pour obtenir la liste des noms d'algorithmes de chiffrement pour TLSv1.3, se
référer à la <a href="https://docs.openssl.org/master/man3/SSL_CTX_set_ciphersuites/">documentation
OpenSSL</a>.</p>
<p>
La liste d'algorithmes de chiffrement SSL spécifiée par l'argument
<em>cipher-spec</em> comporte quatre attributs principaux auxquels
s'ajoutent quelques attributs secondaires :</p>
<ul>
<li><em>Algorithme d'échange de clés</em>:<br />
RSA, Diffie-Hellman, Elliptic Curve Diffie-Hellman, Secure Remote Password.
</li>
<li><em>Algorithme d'authentification</em>:<br />
RSA, Diffie-Hellman, DSS, ECDSA, ou none.
</li>
<li><em>Algorithme de chiffrement</em>:<br />
AES, DES, Triple-DES, RC4, RC2, IDEA, etc...
</li>
<li><em>Algorithme de condensé MAC</em>:<br />
MD5, SHA ou SHA1, SHA256, SHA384.
</li>
</ul>
<p>L'algorithme de chiffrement peut aussi provenir de l'extérieur. Les
algorithmes SSLv2 ne sont plus supportés.
Pour définir les algorithmes à utiliser, on
peut soit spécifier tous les algorithmes à la fois, soit utiliser des
alias pour spécifier une liste d'algorithmes dans leur ordre de
préférence (voir <a href="#table1">Table 1</a>). Les algorithmes et
alias effectivement disponibles dépendent de la version d'openssl
utilisée. Les versions ultérieures d'openssl sont susceptibles d'inclure
des algorithmes supplémentaires.</p>
<table class="bordered">
<tr><th><a name="table1">Symbole</a></th> <th>Description</th></tr>
<tr><td colspan="2"><em>Algorithme d'échange de clés :</em></td></tr>
<tr><td><code>kRSA</code></td> <td>Echange de clés RSA</td></tr>
<tr><td><code>kDHr</code></td> <td>Echange de clés Diffie-Hellman avec
clé RSA</td></tr>
<tr><td><code>kDHd</code></td> <td>Echange de clés Diffie-Hellman avec
clé DSA</td></tr>
<tr><td><code>kEDH</code></td> <td>Echange de clés Diffie-Hellman
temporaires (pas de certificat)</td> </tr>
<tr><td><code>kSRP</code></td> <td>échange de clés avec mot de passe
distant sécurisé (SRP)</td></tr>
<tr><td colspan="2"><em>Algorithmes d'authentification :</em></td></tr>
<tr><td><code>aNULL</code></td> <td>Pas d'authentification</td></tr>
<tr><td><code>aRSA</code></td> <td>Authentification RSA</td></tr>
<tr><td><code>aDSS</code></td> <td>Authentification DSS</td> </tr>
<tr><td><code>aDH</code></td> <td>Authentification Diffie-Hellman</td></tr>
<tr><td colspan="2"><em>Algorithmes de chiffrement :</em></td></tr>
<tr><td><code>eNULL</code></td> <td>Pas de chiffrement</td> </tr>
<tr><td><code>NULL</code></td> <td>alias pour eNULL</td> </tr>
<tr><td><code>AES</code></td> <td>Chiffrement AES</td> </tr>
<tr><td><code>DES</code></td> <td>Chiffrement DES</td> </tr>
<tr><td><code>3DES</code></td> <td>Chiffrement Triple-DES</td> </tr>
<tr><td><code>RC4</code></td> <td>Chiffrement RC4</td> </tr>
<tr><td><code>RC2</code></td> <td>Chiffrement RC2</td> </tr>
<tr><td><code>IDEA</code></td> <td>Chiffrement IDEA</td> </tr>
<tr><td colspan="2"><em>Algorithmes de condensés MAC </em>:</td></tr>
<tr><td><code>MD5</code></td> <td>Fonction de hashage MD5</td></tr>
<tr><td><code>SHA1</code></td> <td>Fonction de hashage SHA1</td></tr>
<tr><td><code>SHA</code></td> <td>alias pour SHA1</td> </tr>
<tr><td><code>SHA256</code></td> <td>Fonction de hashage SHA256</td> </tr>
<tr><td><code>SHA384</code></td> <td>Fonction de hashage SHA384</td> </tr>
<tr><td colspan="2"><em>Alias :</em></td></tr>
<tr><td><code>SSLv3</code></td> <td>tous les algorithmes de chiffrement
SSL version 3.0</td> </tr>
<tr><td><code>TLSv1</code></td> <td>tous les algorithmes de chiffrement
TLS version 1.0</td> </tr>
<tr><td><code>EXP</code></td> <td>tous les algorithmes de chiffrement
externes</td> </tr>
<tr><td><code>EXPORT40</code></td> <td>tous les algorithmes de chiffrement
externes limités à 40 bits</td> </tr>
<tr><td><code>EXPORT56</code></td> <td>tous les algorithmes de chiffrement
externes limités à 56 bits</td> </tr>
<tr><td><code>LOW</code></td> <td>tous les algorithmes de chiffrement
faibles (non externes, DES simple)</td></tr>
<tr><td><code>MEDIUM</code></td> <td>tous les algorithmes avec
chiffrement 128 bits</td> </tr>
<tr><td><code>HIGH</code></td> <td>tous les algorithmes
utilisant Triple-DES</td> </tr>
<tr><td><code>RSA</code></td> <td>tous les algorithmes
utilisant l'échange de clés RSA</td> </tr>
<tr><td><code>DH</code></td> <td>tous les algorithmes
utilisant l'échange de clés Diffie-Hellman</td> </tr>
<tr><td><code>EDH</code></td> <td>tous les algorithmes
utilisant l'échange de clés Diffie-Hellman temporaires</td> </tr>
<tr><td><code>ECDH</code></td> <td>Echange de clés Elliptic Curve Diffie-Hellman</td> </tr>
<tr><td><code>ADH</code></td> <td>tous les algorithmes
utilisant l'échange de clés Diffie-Hellman anonymes</td> </tr>
<tr><td><code>AECDH</code></td> <td>tous les algorithmes utilisant
l'échange de clés Elliptic Curve Diffie-Hellman</td> </tr>
<tr><td><code>SRP</code></td> <td>tous les algorithmes utilisant
l'échange de clés avec mot de passe distant sécurisé (SRP)</td> </tr>
<tr><td><code>DSS</code></td> <td>tous les algorithmes
utilisant l'authentification DSS</td> </tr>
<tr><td><code>ECDSA</code></td> <td>tous les algorithmes utilisant
l'authentification ECDSA</td> </tr>
<tr><td><code>aNULL</code></td> <td>tous les algorithmes n'utilisant
aucune authentification</td> </tr>
</table>
<p>
Cela devient intéressant lorsque tous ces symboles sont combinés
ensemble pour spécifier les algorithmes disponibles et l'ordre dans
lequel vous voulez les utiliser. Pour simplifier tout cela, vous
disposez aussi d'alias (<code>SSLv3, TLSv1, EXP, LOW, MEDIUM,
HIGH</code>) pour certains groupes d'algorithmes. Ces symboles peuvent
être reliés par des préfixes pour former la chaîne <em>algorithmes</em>.
Les préfixes disponibles sont :</p>
<ul>
--> --------------------
--> maximum size reached
--> --------------------
[ Verzeichnis aufwärts0.102unsichere Verbindung
]
|
2026-04-02
|