1<?xml version="1.0" encoding="ISO-8859-1"?> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 3<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!-- 4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 5 This file is generated from xml source: DO NOT EDIT 6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7 --> 8<title>Chiffrement fort SSL/TLS : Mode d'emploi - Serveur Apache HTTP</title> 9<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> 10<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> 11<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" /> 12<script src="/style/scripts/prettify.min.js" type="text/javascript"> 13</script> 14 15<link href="/images/favicon.ico" rel="shortcut icon" /></head> 16<body id="manual-page"><div id="page-header"> 17<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> 18<p class="apache">Serveur Apache HTTP Version 2.4</p> 19<img alt="" src="/images/feather.gif" /></div> 20<div class="up"><a href="./"><img title="<-" alt="<-" src="/images/left.gif" /></a></div> 21<div id="path"> 22<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="./">SSL/TLS</a></div><div id="page-content"><div id="preamble"><h1>Chiffrement fort SSL/TLS : Mode d'emploi</h1> 23<div class="toplang"> 24<p><span>Langues Disponibles: </span><a href="/en/ssl/ssl_howto.html" hreflang="en" rel="alternate" title="English"> en </a> | 25<a href="/fr/ssl/ssl_howto.html" title="Fran�ais"> fr </a></p> 26</div> 27 28 29<p>Ce document doit vous permettre de d�marrer et de faire fonctionner 30une configuration de base. Avant de vous lancer dans l'application de 31techniques avanc�es, il est fortement recommand� de lire le reste 32de la documentation SSL afin d'en comprendre le fonctionnement de 33mani�re plus approfondie.</p> 34</div> 35<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#configexample">Exemple de configuration basique</a></li> 36<li><img alt="" src="/images/down.gif" /> <a href="#ciphersuites">Suites de chiffrement et mise en application de la s�curit� 37de haut niveau</a></li> 38<li><img alt="" src="/images/down.gif" /> <a href="#strongurl">Comment cr�er un serveur qui accepte tous les types de 39chiffrement en g�n�ral, mais exige un chiffrement fort pour pouvoir 40acc�der � une URL particuli�re ?</a></li> 41<li><img alt="" src="/images/down.gif" /> <a href="#accesscontrol">Authentification du client et contr�le d'acc�s</a></li> 42<li><img alt="" src="/images/down.gif" /> <a href="#logging">Journalisation</a></li> 43</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> 44<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 45<div class="section"> 46<h2><a name="configexample" id="configexample">Exemple de configuration basique</a></h2> 47 48 49<p>Votre configuration SSL doit comporter au moins les directives 50suivantes :</p> 51 52<pre class="prettyprint lang-config">LoadModule ssl_module modules/mod_ssl.so 53 54Listen 443 55<VirtualHost *:443> 56 ServerName www.example.com 57 SSLEngine on 58 SSLCertificateFile /path/to/www.example.com.cert 59 SSLCertificateKeyFile /path/to/www.example.com.key 60</VirtualHost></pre> 61 62 63</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 64<div class="section"> 65<h2><a name="ciphersuites" id="ciphersuites">Suites de chiffrement et mise en application de la s�curit� 66de haut niveau</a></h2> 67 68<ul> 69<li><a href="#onlystrong">Comment cr�er un serveur SSL 70qui n'accepte que le chiffrement fort ?</a></li> 71<li><a href="#strongurl">Comment cr�er un serveur qui accepte tous les types de 72chiffrement en g�n�ral, mais exige un chiffrement fort pour pouvoir 73acc�der � une URL particuli�re ?</a></li> 74</ul> 75 76 77<h3><a name="onlystrong" id="onlystrong">Comment cr�er un serveur SSL qui n'accepte 78que le chiffrement fort ?</a></h3> 79 80 <p>Les directives suivantes ne permettent que les 81 chiffrements de plus haut niveau :</p> 82 <pre class="prettyprint lang-config">SSLCipherSuite HIGH:!aNULL:!MD5</pre> 83 84 85 86 87 <p>Avec la configuration qui suit, vous indiquez une pr�f�rence pour 88 des algorityhmes de chiffrement sp�cifiques optimis�s en mati�re de 89 rapidit� (le choix final sera op�r� par mod_ssl, dans la mesure ou le 90 client les supporte) :</p> 91 92 <pre class="prettyprint lang-config">SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!aNULL:!MD5 93SSLHonorCipherOrder on</pre> 94 95</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 96<div class="section"> 97<h2><a name="strongurl" id="strongurl">Comment cr�er un serveur qui accepte tous les types de 98chiffrement en g�n�ral, mais exige un chiffrement fort pour pouvoir 99acc�der � une URL particuli�re ?</a></h2> 100 101 <p>Dans ce cas bien �videmment, une directive <code class="directive"><a href="/mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code> au niveau du serveur principal 102 qui restreint le choix des suites de chiffrement aux versions les plus 103 fortes ne conviendra pas. <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> peut cependant �tre 104 reconfigur� au sein de blocs <code>Location</code> qui permettent 105 d'adapter la configuration g�n�rale � un r�pertoire sp�cifique ; 106 <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> peut alors forcer automatiquement une 107 ren�gociation des param�tres SSL pour parvenir au but recherch�. 108 Cette configuration peut se pr�senter comme suit :</p> 109 <pre class="prettyprint lang-config"># soyons tr�s tol�rant a priori 110SSLCipherSuite ALL:!aNULL:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP:+eNULL 111 112<Location /strong/area> 113# sauf pour https://hostname/strong/area/ et ses sous-r�pertoires 114# qui exigent des chiffrements forts 115SSLCipherSuite HIGH:!aNULL:!MD5 116</Location></pre> 117 118</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 119<div class="section"> 120<h2><a name="accesscontrol" id="accesscontrol">Authentification du client et contr�le d'acc�s</a></h2> 121 122<ul> 123<li><a href="#allclients">Comment forcer les clients 124� s'authentifier � l'aide de certificats ?</a></li> 125<li><a href="#arbitraryclients">Comment forcer les clients 126� s'authentifier � l'aide de certificats pour une URL particuli�re, 127mais autoriser quand-m�me tout client anonyme 128� acc�der au reste du serveur ?</a></li> 129<li><a href="#certauthenticate">Comment n'autoriser l'acc�s � une URL 130particuli�re qu'aux clients qui poss�dent des certificats, mais autoriser 131l'acc�s au reste du serveur � tous les clients ?</a></li> 132<li><a href="#intranet">Comment imposer HTTPS avec chiffrements forts, 133et soit authentification de base, soit possession de certificats clients, 134pour l'acc�s � une partie de l'Intranet, pour les clients en 135provenance de l'Internet ?</a></li> 136</ul> 137 138<h3><a name="allclients" id="allclients">Comment forcer les clients 139� s'authentifier � l'aide de certificats ? 140</a></h3> 141 142 143 <p>Lorsque vous connaissez tous vos clients (comme c'est en g�n�ral le cas 144 au sein d'un intranet d'entreprise), vous pouvez imposer une 145 authentification bas�e uniquement sur les certificats. Tout ce dont vous 146 avez besoin pour y parvenir est de cr�er des certificats clients sign�s par 147 le certificat de votre propre autorit� de certification 148 (<code>ca.crt</code>), et d'authentifier les clients � l'aide de ces 149 certificats.</p> 150 <pre class="prettyprint lang-config"># exige un certificat client sign� par le certificat de votre CA 151# contenu dans ca.crt 152SSLVerifyClient require 153SSLVerifyDepth 1 154SSLCACertificateFile conf/ssl.crt/ca.crt</pre> 155 156 157 158<h3><a name="arbitraryclients" id="arbitraryclients">Comment forcer les clients 159� s'authentifier � l'aide de certificats pour une URL particuli�re, 160mais autoriser quand-m�me tout client anonyme 161� acc�der au reste du serveur ?</a></h3> 162 163 164<p>Pour forcer les clients � s'authentifier � l'aide de certificats pour une 165URL particuli�re, vous pouvez utiliser les fonctionnalit�s de reconfiguration 166de <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> en fonction du r�pertoire :</p> 167 168 <pre class="prettyprint lang-config">SSLVerifyClient none 169SSLCACertificateFile conf/ssl.crt/ca.crt 170 171<Location /secure/area> 172SSLVerifyClient require 173SSLVerifyDepth 1 174</Location></pre> 175 176 177 178<h3><a name="certauthenticate" id="certauthenticate">Comment n'autoriser l'acc�s � une URL 179particuli�re qu'aux clients qui poss�dent des certificats, mais autoriser 180l'acc�s au reste du serveur � tous les clients ?</a></h3> 181 182 183 <p>La cl� du probl�me consiste � v�rifier si une partie du certificat 184 client correspond � ce que vous attendez. Cela signifie en g�n�ral 185 consulter tout ou partie du nom distinctif (DN), afin de v�rifier s'il 186 contient une cha�ne connue. Il existe deux m�thodes pour y parvenir ; 187 on utilise soit le module <code class="module"><a href="/mod/mod_auth_basic.html">mod_auth_basic</a></code>, soit la 188 directive <code class="directive"><a href="/mod/mod_ssl.html#sslrequire">SSLRequire</a></code>.</p> 189 190 <p>La m�thode du module <code class="module"><a href="/mod/mod_auth_basic.html">mod_auth_basic</a></code> est en g�n�ral 191 incontournable lorsque les certificats ont un contenu arbitraire, ou 192 lorsque leur DN ne contient aucun champ connu 193 (comme l'organisation, etc...). Dans ce cas, vous devez construire une base 194 de donn�es de mots de passe contenant <em>tous</em> les clients 195 autoris�s, comme suit :</p> 196 197 <pre class="prettyprint lang-config">SSLVerifyClient none 198SSLCACertificateFile conf/ssl.crt/ca.crt 199SSLCACertificatePath conf/ssl.crt 200 201<Directory /usr/local/apache2/htdocs/secure/area> 202SSLVerifyClient require 203 SSLVerifyDepth 5 204 SSLOptions +FakeBasicAuth 205 SSLRequireSSL 206 AuthName "Snake Oil Authentication" 207 AuthType Basic 208 AuthBasicProvider file 209 AuthUserFile /usr/local/apache2/conf/httpd.passwd 210 Require valid-user 211</Directory></pre> 212 213 214 215 <p>Le mot de passe utilis� dans cet exemple correspond � la cha�ne de 216 caract�res "password" chiffr�e en DES. Voir la documentation de la 217 directive <code class="directive"><a href="/mod/mod_ssl.html#ssloptions">SSLOptions</a></code> pour 218 plus de d�tails.</p> 219 220 <div class="example"><h3>httpd.passwd</h3><pre>/C=DE/L=Munich/O=Snake Oil, Ltd./OU=Staff/CN=Foo:xxj31ZMTZzkVA 221/C=US/L=S.F./O=Snake Oil, Ltd./OU=CA/CN=Bar:xxj31ZMTZzkVA 222/C=US/L=L.A./O=Snake Oil, Ltd./OU=Dev/CN=Quux:xxj31ZMTZzkVA</pre></div> 223 224 <p>Lorsque vos clients font tous partie d'une m�me hi�rarchie, ce qui 225 appara�t dans le DN, vous pouvez les authentifier plus facilement en 226 utilisant la directive <code class="directive"><a href="/mod/mod_ssl.html#sslrequire">SSLRequire</a></code>, comme suit :</p> 227 228 229 <pre class="prettyprint lang-config">SSLVerifyClient none 230SSLCACertificateFile conf/ssl.crt/ca.crt 231SSLCACertificatePath conf/ssl.crt 232 233<Directory /usr/local/apache2/htdocs/secure/area> 234 SSLVerifyClient require 235 SSLVerifyDepth 5 236 SSLOptions +FakeBasicAuth 237 SSLRequireSSL 238 SSLRequire %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \ 239 and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} 240</Directory></pre> 241 242 243 244<h3><a name="intranet" id="intranet">Comment imposer HTTPS avec chiffrements forts, 245et soit authentification de base, soit possession de certificats clients, 246pour l'acc�s � une partie de l'Intranet, pour les clients en 247provenance de l'Internet ? Je souhaite quand-m�me autoriser l'acc�s en HTTP 248aux clients de l'intranet.</a></h3> 249 250 251 <p>On suppose dans ces exemples que les clients de l'intranet ont des 252 adresses IP dans la gamme 192.168.1.0/24, et que la partie de l'intranet 253 � laquelle vous voulez autoriser l'acc�s depuis l'Internet est 254 <code>/usr/local/apache2/htdocs/subarea</code>. Ces lignes de configuration 255 doivent se trouver en dehors de votre h�te virtuel HTTPS, afin qu'elles 256 s'appliquent � la fois � HTTP et HTTPS.</p> 257 258 <pre class="prettyprint lang-config">SSLCACertificateFile conf/ssl.crt/company-ca.crt 259 260<Directory /usr/local/apache2/htdocs> 261# En dehors de subarea, seul l'acc�s depuis l'intranet est 262# autoris� 263 Require ip 192.168.1.0/24 264</Directory> 265 266<Directory /usr/local/apache2/htdocs/subarea> 267# Dans subarea, tout acc�s depuis l'intranet est autoris� 268# mais depuis l'Internet, seul l'acc�s par HTTPS + chiffrement fort + Mot de passe 269# ou HTTPS + chiffrement fort + certificat client n'est autoris�. 270 271# Si HTTPS est utilis�, on s'assure que le niveau de chiffrement est fort. 272# Autorise en plus les certificats clients comme une alternative � 273# l'authentification basique. 274 SSLVerifyClient optional 275 SSLVerifyDepth 1 276 SSLOptions +FakeBasicAuth +StrictRequire 277 SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128 278 279 # ON oblige les clients venant d'Internet � utiliser HTTPS 280 RewriteEngine on 281 RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.[0-9]+$ 282 RewriteCond %{HTTPS} !=on 283 RewriteRule . - [F] 284 285 # On permet l'acc�s soit sur les crit�res r�seaux, soit par authentification Basique 286 Satisfy any 287 288 # Contr�le d'acc�s r�seau 289 Require ip 192.168.1.0/24 290 291 # Configuration de l'authentification HTTP Basique 292 AuthType basic 293 AuthName "Protected Intranet Area" 294 AuthBasicProvider file 295 AuthUserFile conf/protected.passwd 296 Require valid-user 297</Directory></pre> 298 299 300</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 301<div class="section"> 302<h2><a name="logging" id="logging">Journalisation</a></h2> 303 304 305 <p><code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> peut enregistrer des informations de 306 d�bogage tr�s verbeuses dans le journal des erreurs, lorsque sa 307 directive <code class="directive"><a href="/mod/core.html#loglevel">LogLevel</a></code> est d�finie 308 � des niveaux de trace �lev�s. Par contre, sur un serveur tr�s 309 sollicit�, le niveau <code>info</code> sera probablement d�j� trop 310 �lev�. Souvenez-vous que vous pouvez configurer la directive 311 <code class="directive"><a href="/mod/core.html#loglevel">LogLevel</a></code> par module afin de 312 pourvoir � vos besoins.</p> 313</div></div> 314<div class="bottomlang"> 315<p><span>Langues Disponibles: </span><a href="/en/ssl/ssl_howto.html" hreflang="en" rel="alternate" title="English"> en </a> | 316<a href="/fr/ssl/ssl_howto.html" title="Fran�ais"> fr </a></p> 317</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div> 318<script type="text/javascript"><!--//--><![CDATA[//><!-- 319var comments_shortname = 'httpd'; 320var comments_identifier = 'http://httpd.apache.org/docs/2.4/ssl/ssl_howto.html'; 321(function(w, d) { 322 if (w.location.hostname.toLowerCase() == "httpd.apache.org") { 323 d.write('<div id="comments_thread"><\/div>'); 324 var s = d.createElement('script'); 325 s.type = 'text/javascript'; 326 s.async = true; 327 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; 328 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); 329 } 330 else { 331 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); 332 } 333})(window, document); 334//--><!]]></script></div><div id="footer"> 335<p class="apache">Copyright 2014 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> 336<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></div><script type="text/javascript"><!--//--><![CDATA[//><!-- 337if (typeof(prettyPrint) !== 'undefined') { 338 prettyPrint(); 339} 340//--><!]]></script> 341</body></html>