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 SSL/TLS fort: foire aux questions - 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 SSL/TLS fort: foire aux questions</h1> 23<div class="toplang"> 24<p><span>Langues Disponibles: </span><a href="/en/ssl/ssl_faq.html" hreflang="en" rel="alternate" title="English"> en </a> | 25<a href="/fr/ssl/ssl_faq.html" title="Fran�ais"> fr </a></p> 26</div> 27 28<blockquote> 29<p>Le sage n'apporte pas de bonnes r�ponses, il pose les bonnes questions</p> 30<p class="cite">-- <cite>Claude Levi-Strauss</cite></p> 31 32</blockquote> 33</div> 34<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#installation">Installation</a></li> 35<li><img alt="" src="/images/down.gif" /> <a href="#aboutconfig">Configuration</a></li> 36<li><img alt="" src="/images/down.gif" /> <a href="#aboutcerts">Certificats</a></li> 37<li><img alt="" src="/images/down.gif" /> <a href="#aboutssl">Le protocole SSL</a></li> 38<li><img alt="" src="/images/down.gif" /> <a href="#support">Support de mod_ssl</a></li> 39</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> 40<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 41<div class="section"> 42<h2><a name="installation" id="installation">Installation</a></h2> 43<ul> 44<li><a href="#mutex">Pourquoi le d�marrage d'Apache provoque-t-il des 45erreurs de permission en rapport avec SSLMutex ?</a></li> 46<li><a href="#entropy">Pourquoi mod_ssl s'arr�te-t-il avec l'erreur 47"Failed to generate temporary 512 bit RSA private key" au d�marrage 48d'Apache ?</a></li> 49</ul> 50 51<h3><a name="mutex" id="mutex">Pourquoi le d�marrage d'Apache provoque-t-il des 52erreurs de permission en rapport avec SSLMutex ?</a></h3> 53 <p>Des erreurs telles que ``<code>mod_ssl: Child could not open 54 SSLMutex lockfile /opt/apache/logs/ssl_mutex.18332 (avec l'erreur 55 syst�me qui suit) [...] System: Permission denied (errno: 13)</code>'' 56 sont souvent provoqu�es par des permissions trop restrictives sur les 57 r�pertoires <em>parents</em>. Assurez-vous que tous les r�pertoires 58 parents (ici <code>/opt</code>, <code>/opt/apache</code> et 59 <code>/opt/apache/logs</code>) ont le bit x positionn� au moins pour 60 l'UID sous lequel les processus enfants d'Apache s'ex�cutent (voir la 61 directive <code class="directive"><a href="/mod/mod_unixd.html#user">User</a></code>).</p> 62 63 64<h3><a name="entropy" id="entropy">Pourquoi mod_ssl s'arr�te-t-il avec l'erreur 65"Failed to generate temporary 512 bit RSA private key" au d�marrage 66d'Apache ?</a></h3> 67 <p>Pour fonctionner correctement, les logiciels de cryptographie ont 68 besoin d'une source de donn�es al�atoires. De nombreux syst�mes 69 d'exploitation libres proposent un "p�riph�rique source d'entropie" 70 qui fournit ce service (il se nomme en g�n�ral 71 <code>/dev/random</code>). Sur d'autres syst�mes, les applications 72 doivent amorcer manuellement 73 le G�n�rateur de Nombres Pseudo-Al�atoires d'OpenSSL 74 (Pseudo Random Number Generator -PRNG) � l'aide de donn�es appropri�es 75 avant de g�n�rer des cl�s ou d'effectuer un chiffrement � cl� 76 publique. Depuis la version 0.9.5, les fonctions d'OpenSSL qui n�cessitent 77 des donn�es al�atoires provoquent une erreur si le PRNG n'a pas �t� amorc� 78 avec une source de donn�es al�atoires d'au moins 128 bits.</p> 79 <p>Pour �viter cette erreur, <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> doit fournir 80 suffisamment d'entropie au PRNG pour lui permettre de fonctionner 81 correctement. Ce niveau d'entropie est d�fini par la directive 82 <code class="directive"><a href="/mod/mod_ssl.html#sslrandomseed">SSLRandomSeed</a></code>.</p> 83 84</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 85<div class="section"> 86<h2><a name="aboutconfig" id="aboutconfig">Configuration</a></h2> 87<ul> 88<li><a href="#parallel">Peut-on faire cohabiter HTTP et HTTPS sur le m�me 89serveur ?</a></li> 90<li><a href="#ports">Quel port HTTPS utilise-t-il ?</a></li> 91<li><a href="#httpstest">Comment s'exprimer en langage HTTPS � des fins 92de test ?</a></li> 93<li><a href="#hang">Pourquoi la communication se bloque-t-elle lorsque je 94me connecte � mon serveur Apache configur� pour SSL ?</a></li> 95<li><a href="#refused">Pourquoi, lorsque je tente d'acc�der en HTTPS � mon 96serveur Apache+mod_ssl fra�chement install�, l'erreur ``Connection Refused'' 97s'affiche-t-elle ?</a></li> 98<li><a href="#envvars">Pourquoi les variables <code>SSL_XXX</code> 99ne sont-elles pas disponibles dans mes scripts CGI et SSI ?</a></li> 100<li><a href="#relative">Comment puis-je basculer entre les protocoles HTTP et 101HTTPS dans les hyperliens relatifs ?</a></li> 102</ul> 103 104<h3><a name="parallel" id="parallel">Peut-on faire cohabiter HTTP et HTTPS sur le m�me 105serveur ?</a></h3> 106 <p>Oui. HTTP et HTTPS utilisent des ports diff�rents (HTTP �coute le port 107 80 et HTTPS le port 443), si bien qu'il n'y a pas de conflit direct entre 108 les deux. Vous pouvez soit ex�cuter deux instances s�par�es du serveur, 109 chacune d'entre elles �coutant l'un de ces ports, soit utiliser l'�l�gante 110 fonctionnalit� d'Apache que constituent les h�tes virtuels pour cr�er 111 deux serveurs virtuels g�r�s par la m�me instance d'Apache - le 112 premier serveur r�pondant en HTTP aux requ�tes sur le port 80, 113 le second r�pondant en HTTPS aux requ�tes sur le port 114 443.</p> 115 116 117<h3><a name="ports" id="ports">Quel port HTTPS utilise-t-il ?</a></h3> 118<p>Vous pouvez associer le protocole HTTPS � n'importe quel port, mais le port 119standard est le port 443, que tout navigateur compatible HTTPS va utiliser par 120d�faut. Vous pouvez forcer votre navigateur � utiliser un port diff�rent en le 121pr�cisant dans l'URL. Par exemple, si votre serveur est configur� pour 122servir des pages en HTTPS sur le port 8080, vous pourrez y acc�der par 123l'adresse <code>https://example.com:8080/</code>.</p> 124 125 126<h3><a name="httpstest" id="httpstest">Comment s'exprimer en langage HTTPS � des fins 127de test ?</a></h3> 128 <p>Alors que vous utilisez simplement</p> 129 130 <div class="example"><p><code>$ telnet localhost 80<br /> 131 GET / HTTP/1.0</code></p></div> 132 133 <p>pour tester facilement Apache via HTTP, les choses ne sont pas si 134 simples pour HTTPS � cause du protocole SSL situ� entre TCP et HTTP. 135 La commande OpenSSL <code>s_client</code> vous permet cependant 136 d'effectuer un test similaire via HTTPS :</p> 137 138 <div class="example"><p><code>$ openssl s_client -connect localhost:443 -state -debug<br /> 139 GET / HTTP/1.0</code></p></div> 140 141 <p>Avant la v�ritable r�ponse HTTP, vous recevrez des informations 142 d�taill�es � propos de l'�tablissement de la connexion SSL. Si vous 143 recherchez un client en ligne de commande � usage plus g�n�ral qui comprend 144 directement HTTP et HTTPS, qui peut effectuer des op�rations GET et POST, 145 peut utiliser un mandataire, supporte les requ�tes portant sur une partie 146 d'un fichier (byte-range), etc..., vous devriez vous tourner vers 147 l'excellent outil <a href="http://curl.haxx.se/">cURL</a>. Gr�ce � lui, 148 vous pouvez v�rifier si Apache r�pond correctement aux requ�tes via 149 HTTP et HTTPS comme suit :</p> 150 151 <div class="example"><p><code>$ curl http://localhost/<br /> 152 $ curl https://localhost/</code></p></div> 153 154 155<h3><a name="hang" id="hang">Pourquoi la communication se bloque-t-elle lorsque je 156me connecte � mon serveur Apache configur� pour SSL ?</a></h3> 157<p>Ceci peut arriver si vous vous connectez � un serveur HTTPS (ou � 158un serveur virtuel) via HTTP (par exemple, en utilisant 159<code>http://example.com/</code> au lieu de <code>https://example.com</code>). 160Cela peut aussi arriver en essayant de vous connecter via HTTPS � un 161serveur HTTP (par exemple, en utilisant <code>https://example.com/</code> 162avec un serveur qui ne supporte pas HTTPS, ou le supporte, mais sur un 163port non standard). Assurez-vous que vous vous connectez bien � un 164serveur (virtuel) qui supporte SSL.</p> 165 166 167<h3><a name="refused" id="refused">Pourquoi, lorsque je tente d'acc�der en HTTPS � mon 168serveur Apache+mod_ssl fra�chement install�, l'erreur ``Connection Refused'' 169s'affiche-t-elle ?</a></h3> 170<p>Une configuration incorrecte peut provoquer ce type d'erreur. 171Assurez-vous que vos directives <code class="directive"><a href="/mod/mpm_common.html#listen">Listen</a></code> s'accordent avec vos directives 172 <code class="directive"><a href="/mod/core.html#virtualhost"><VirtualHost></a></code>. Si 173 l'erreur persiste, recommencez depuis le d�but en restaurant la 174 configuration par d�faut fournie par<code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code>.</p> 175 176 177<h3><a name="envvars" id="envvars">Pourquoi les variables <code>SSL_XXX</code> 178ne sont-elles pas disponibles dans mes scripts CGI et SSI ?</a></h3> 179<p>Assurez-vous que la directive ``<code>SSLOptions +StdEnvVars</code>'' est 180bien pr�sente dans le contexte de vos requ�tes CGI/SSI.</p> 181 182 183<h3><a name="relative" id="relative">Comment puis-je basculer entre les protocoles HTTP et 184HTTPS dans les hyperliens relatifs ?</a></h3> 185 186<p>Normalement, pour basculer entre HTTP et HTTPS, vous devez utiliser des 187hyperliens pleinement qualifi�s (car vous devez modifier le sch�ma de l'URL). 188Cependant, � l'aide du module <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code>, vous pouvez 189manipuler des hyperliens relatifs, pour obtenir le m�me effet.</p> 190 <pre class="prettyprint lang-config">RewriteEngine on 191RewriteRule ^/(.*)_SSL$ https://%{SERVER_NAME}/$1 [R,L] 192RewriteRule ^/(.*)_NOSSL$ http://%{SERVER_NAME}/$1 [R,L]</pre> 193 194 195 <p>Ce jeu de r�gles rewrite vous permet d'utiliser des hyperliens de la 196 forme <code><a href="document.html_SSL"></code> pour passer en HTTPS 197 dans les liens relatifs. (Remplacez SSL par NOSSL pour passer en HTTP.)</p> 198 199</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 200<div class="section"> 201<h2><a name="aboutcerts" id="aboutcerts">Certificats</a></h2> 202<ul> 203<li><a href="#keyscerts">Qu'est-ce qu'un cl� priv�e RSA, un certificat, 204une demande de signature de certificat (CSR) ?</a></li> 205<li><a href="#startup">Y a-t-il une diff�rence au d�marrage entre un serveur 206Apache non SSL et un serveur Apache supportant SSL ?</a></li> 207<li><a href="#selfcert">Comment cr�er un certificat auto-sign� SSL � des 208fins de test ?</a></li> 209<li><a href="#realcert">Comment cr�er un vrai certificat SSL ?</a></li> 210<li><a href="#ownca">Comment cr�er et utiliser sa propre Autorit� de 211certification (CA) ?</a></li> 212<li><a href="#passphrase">Comment modifier le mot de passe 213de ma cl� priv�e ?</a></li> 214<li><a href="#removepassphrase">Comment d�marrer Apache sans avoir � entrer de 215mot de passe ?</a></li> 216<li><a href="#verify">Comment v�rifier si une cl� priv�e correspond bien 217� son certificat ?</a></li> 218<li><a href="#pemder">Comment convertir un certificat du format PEM 219au format DER ?</a></li> 220<li><a href="#gid">Pourquoi les navigateurs se plaignent-ils de ne pas pouvoir 221v�rifier mon certificat de serveur ?</a></li> 222</ul> 223 224<h3><a name="keyscerts" id="keyscerts">Qu'est-ce qu'un cl� priv�e RSA, un certificat, 225une demande de signature de certificat (CSR) ?</a></h3> 226<p>Un fichier de cl� priv�e RSA est un fichier num�rique que vous pouvez 227utiliser pour d�chiffrer des messages que l'on vous a envoy�s. Il a son 228pendant � caract�re public que vous pouvez distribuer (par le biais de votre 229certificat), ce qui permet aux utilisateurs de chiffrer les messages qu'ils 230vous envoient.</p> 231 <p>Une Demande de Signature de Certificat (CSR) est un fichier num�rique 232 qui contient votre cl� publique et votre nom. La CSR doit �tre envoy�e � 233 une Autorit� de Certification (CA), qui va la convertir en vrai certificat 234 en la signant.</p> 235 <p>Un certificat contient votre cl� publique RSA, votre nom, le nom 236 de la CA, et est sign� num�riquement par cette derni�re. Les navigateurs 237 qui reconnaissent la CA peuvent v�rifier la signature du certificat, et 238 ainsi en extraire votre cl� publique RSA. Ceci leur permet de vous envoyer 239 des messages chiffr�s que vous seul pourrez d�chiffrer.</p> 240 <p>Se r�f�rer au chapitre <a href="ssl_intro.html">Introduction</a> 241 pour une description g�n�rale du protocole SSL.</p> 242 243 244<h3><a name="startup" id="startup">Y a-t-il une diff�rence au d�marrage entre un serveur 245Apache non SSL et un serveur Apache supportant SSL ?</a></h3> 246<p>Oui. En g�n�ral, avec ou sans <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> int�gr�, le d�marrage 247d'Apache ne pr�sente pas de diff�rences. Cependant, si votre fichier de cl� 248priv�e SSL poss�de un mot de passe, vous devrez le taper au d�marrage 249d'Apache.</p> 250 251 <p>Devoir entrer manuellement le mot de passe au d�marrage du serveur peut 252 poser quelques probl�mes - par exemple, quand le serveur est d�marr� au 253 moyen de scripts au lancement du syst�me. Dans ce cas, vous pouvez suivre 254 les �tapes <a href="#removepassphrase">ci-dessous</a> pour supprimer le 255 mot de passe de votre cl� priv�e. Gardez � l'esprit qu'agir ainsi augmente 256 les risques de s�curit� - agissez avec pr�caution !</p> 257 258 259<h3><a name="selfcert" id="selfcert">Comment cr�er un certificat auto-sign� SSL � des 260fins de test ?</a></h3> 261 <ol> 262 <li>V�rifiez qu'OpenSSL est install� et l'ex�cutable openssl dans votre 263 <code>PATH</code>.<br /> 264 <br /> 265 </li> 266 <li>Ex�cuter la commande suivante pour cr�er les fichiers 267 <code>server.key</code> et <code>server.crt</code> :<br /> 268 <code><strong>$ openssl req -new -x509 -nodes -out server.crt 269 -keyout server.key</strong></code><br /> 270 Ces fichiers seront utilis�s comme suit dans votre 271 <code>httpd.conf</code> : 272 <pre class="prettyprint lang-config">SSLCertificateFile /path/to/this/server.crt 273SSLCertificateKeyFile /path/to/this/server.key</pre> 274 275 </li> 276 <li>Il est important de savoir que le fichier <code>server.key</code> n'a 277 <em>pas</em> de mot de passe. Pour ajouter un mot de passe � la cl�, vous 278 devez ex�cuter la commande suivante et confirmer le mot de passe comme 279 demand�.<br /> 280 <p><code><strong>$ openssl rsa -des3 -in server.key -out 281 server.key.new</strong></code><br /> 282 <code><strong>$ mv server.key.new server.key</strong></code><br /></p> 283 Sauvegardez le fichier <code>server.key</code> ainsi que son mot de 284 passe en lieu s�r. 285 </li> 286 </ol> 287 288 289<h3><a name="realcert" id="realcert">Comment cr�er un vrai certificat SSL ?</a></h3> 290<p>Voici la marche � suivre pas � pas :</p> 291 <ol> 292 <li>Assurez-vous qu'OpenSSL est bien install� et dans votre <code>PATH</code>. 293 <br /> 294 <br /> 295 </li> 296 <li>Cr�ez une cl� priv�e RSA pour votre serveur Apache 297 (elle sera au format PEM et chiffr�e en Triple-DES):<br /> 298 <br /> 299 <code><strong>$ openssl genrsa -des3 -out server.key 2048</strong></code><br /> 300 <br /> 301 Enregistrez le fichier <code>server.key</code> et le mot de passe 302 �ventuellement d�fini en lieu s�r. 303 Vous pouvez afficher les d�tails de cette cl� priv�e RSA � l'aide de la 304 commande :<br /> 305 306 <br /> 307 <code><strong>$ openssl rsa -noout -text -in server.key</strong></code><br /> 308 <br /> 309 Si n�cessaire, vous pouvez aussi cr�er une version PEM non chiffr�e 310 (non recommand�) de cl� priv�e RSA avec :<br /> 311 <br /> 312 <code><strong>$ openssl rsa -in server.key -out server.key.unsecure</strong></code><br /> 313 <br /> 314 315 </li> 316 <li>Cr�ez une Demande de signature de Certificat (CSR) � l'aide de la 317 cl� priv�e pr�c�demment g�n�r�e (la sortie sera au format PEM):<br /> 318 <br /> 319 <code><strong>$ openssl req -new -key server.key -out server.csr</strong></code><br /> 320 <br /> 321 Vous devez entrer le Nom de Domaine Pleinement Qualifi� 322 ("Fully Qualified Domain Name" ou FQDN) de votre serveur lorsqu'OpenSSL 323 vous demande le "CommonName", c'est � dire que si vous g�n�rez une CSR 324 pour un site web auquel on acc�dera par l'URL 325 <code>https://www.foo.dom/</code>, le FQDN sera "www.foo.dom". Vous 326 pouvez afficher les d�tails de ce CSR avec :<br /> 327 328 <br /> 329 <code><strong>$ openssl req -noout -text -in server.csr</strong></code><br /> 330 <br /> 331 </li> 332 <li>Vous devez maintenant envoyer la CSR � une Autorit� de Certification 333 (CA), afin que cette derni�re puisse la signer. Une fois la CSR sign�e, 334 vous disposerez d'un v�ritable certificat que vous pourrez utiliser avec 335 Apache. Vous pouvez faire signer votre CSR par une CA commerciale ou par 336 votre propre CA.<br /> 337 Les CAs commerciales vous demandent en g�n�ral de leur envoyer la CSR 338 par l'interm�diaire d'un formulaire web, de r�gler le montant de la 339 signature, puis vous envoient un certificat sign� que vous pouvez 340 enregistrer dans un fichier server.crt. 341 342 Pour plus de d�tails sur la mani�re de cr�er sa propre CA, et de 343 l'utiliser pour signer une CSR, voir <a href="#ownca">ci-dessous</a>.<br /> 344 345 Une fois la CSR sign�e, vous pouvez afficher les d�tails du certificat 346 comme suit :<br /> 347 <br /> 348 <code><strong>$ openssl x509 -noout -text -in server.crt</strong></code><br /> 349 350 </li> 351 <li>Vous devez maintenant disposer de deux fichiers : 352 <code>server.key</code> et <code>server.crt</code>. Ils sont pr�cis�s dans 353 votre fichier <code>httpd.conf</code> comme suit : 354 <pre class="prettyprint lang-config">SSLCertificateFile /path/to/this/server.crt 355SSLCertificateKeyFile /path/to/this/server.key</pre> 356 357 Le fichier <code>server.csr</code> n'est plus n�cessaire. 358 </li> 359 360 </ol> 361 362 363<h3><a name="ownca" id="ownca">Comment cr�er et utiliser sa propre Autorit� de 364certification (CA) ?</a></h3> 365 <p>La solution la plus simple consiste � utiliser les scripts 366 <code>CA.sh</code> ou <code>CA.pl</code> fournis avec OpenSSL. De 367 pr�f�rence, utilisez cette solution, � moins que vous ayez de bonnes 368 raisons de ne pas le faire. Dans ce dernier cas, vous pouvez cr�er un 369 certificat auto-sign� comme suit :</p> 370 371 <ol> 372 <li>Cr�ez une cl� priv�e RSA pour votre serveur 373 (elle sera au format PEM et chiffr�e en Triple-DES) :<br /> 374 <br /> 375 <code><strong>$ openssl genrsa -des3 -out server.key 2048</strong></code><br /> 376 <br /> 377 Sauvegardez le fichier <code>host.key</code> et le mot de passe 378 �ventuellement d�fini en lieu s�r. 379 Vous pouvez afficher les d�tails de cette cl� priv�e RSA � l'aide de la 380 commande :<br /> 381 <code><strong>$ openssl rsa -noout -text -in server.key</strong></code><br /> 382 <br /> 383 Si n�cessaire, vous pouvez aussi cr�er une version PEM non chiffr�e 384 (non recommand�) de cette cl� priv�e RSA avec :<br /> 385 <br /> 386 <code><strong>$ openssl rsa -in server.key -out server.key.unsecure</strong></code><br /> 387 <br /> 388 </li> 389 <li>Cr�ez un certificat auto-sign� (structure X509) � l'aide de la cl� RSA 390 que vous venez de g�n�rer (la sortie sera au format PEM) :<br /> 391 <br /> 392 <code><strong>$ openssl req -new -x509 -nodes -sha1 -days 365 393 -key server.key -out server.crt</strong></code><br /> 394 <br /> 395 Cette commande signe le certificat du serveur et produit un fichier 396 <code>server.crt</code>. Vous pouvez afficher les d�tails de ce 397 certificat avec :<br /> 398 <br /> 399 <code><strong>$ openssl x509 -noout -text -in server.crt</strong></code><br /> 400 <br /> 401 </li> 402 </ol> 403 404 405<h3><a name="passphrase" id="passphrase">Comment modifier le mot de passe 406de ma cl� priv�e ?</a></h3> 407<p>Vous devez simplement lire la cl� avec l'ancien mot de passe et la 408r��crire en sp�cifiant le nouveau mot de passe. Pour cela, vous pouvez 409utiliser les commandes suivantes :</p> 410 411 412 <p><code><strong>$ openssl rsa -des3 -in server.key -out server.key.new</strong></code><br /> 413 <code><strong>$ mv server.key.new server.key</strong></code><br /></p> 414 415 <p>La premi�re fois qu'il vous est demand� un mot de passe PEM, vous 416 devez entrer l'ancien mot de passe. Ensuite, on vous demandera d'entrer 417 encore un mot de passe - cette fois, entrez le nouveau mot de passe. Si on 418 vous demande de v�rifier le mot de passe, vous devrez entrer le nouveau 419 mot de passe une seconde fois.</p> 420 421 422<h3><a name="removepassphrase" id="removepassphrase">Comment d�marrer Apache sans avoir � entrer de 423mot de passe ?</a></h3> 424<p>L'apparition de ce dialogue au d�marrage et � chaque red�marrage provient 425du fait que la cl� priv�e RSA contenue dans votre fichier server.key est 426enregistr�e sous forme chiffr�e pour des raisons de s�curit�. Le 427d�chiffrement de ce fichier n�cessite un mot de passe, afin de pouvoir �tre 428lu et interpr�t�. Cependant, La suppression du mot de passe diminue le niveau de 429s�curit� du serveur - agissez avec pr�cautions !</p> 430 <ol> 431 <li>Supprimer le chiffrement de la cl� priv�e RSA (tout en conservant une 432 copie de sauvegarde du fichier original) :<br /> 433 <br /> 434 <code><strong>$ cp server.key server.key.org</strong></code><br /> 435 <code><strong>$ openssl rsa -in server.key.org -out server.key</strong></code><br /> 436 437 <br /> 438 </li> 439 <li>Assurez-vous que le fichier server.key n'est lisible que par root :<br /> 440 <br /> 441 <code><strong>$ chmod 400 server.key</strong></code><br /> 442 <br /> 443 </li> 444 </ol> 445 446 <p>Maintenant, <code>server.key</code> contient une copie non chiffr�e de 447 la cl�. Si vous utilisez ce fichier pour votre serveur, il ne vous 448 demandera plus de mot de passe. CEPENDANT, si quelqu'un arrive � obtenir 449 cette cl�, il sera en mesure d'usurper votre identit� sur le r�seau. 450 Vous DEVEZ par cons�quent vous assurer que seuls root ou le serveur web 451 peuvent lire ce fichier (de pr�f�rence, d�marrez le serveur web sous 452 root et faites le s'ex�cuter sous un autre utilisateur, en n'autorisant 453 la lecture de la cl� que par root).</p> 454 455 <p>Une autre alternative consiste � utiliser la directive 456 ``<code>SSLPassPhraseDialog exec:/chemin/vers/programme</code>''. Gardez 457 cependant � l'esprit que ce n'est bien entendu ni plus ni moins 458 s�curis�.</p> 459 460 461<h3><a name="verify" id="verify">Comment v�rifier si une cl� priv�e correspond bien 462� son certificat ?</a></h3> 463<p>Une cl� priv�e contient une s�rie de nombres. Deux de ces nombres forment la 464"cl� publique", les autres appartiennent � la "cl� priv�e". Les bits de la 465"cl� publique" sont inclus quand vous g�n�rez une CSR, et font par 466cons�quent partie du certificat associ�.</p> 467 <p>Pour v�rifier que la cl� publique contenue dans votre certificat 468 correspond bien � la partie publique de votre cl� priv�e, il vous suffit 469 de comparer ces nombres. Pour afficher le certificat et la cl�, 470 utilisez cette commande :</p> 471 472 <p><code><strong>$ openssl x509 -noout -text -in server.crt</strong></code><br /> 473 <code><strong>$ openssl rsa -noout -text -in server.key</strong></code></p> 474 475 <p>Les parties `modulus' et `public exponent' doivent �tre identiques dans 476 la cl� et le certificat. Comme le `public exponent' est habituellement 477 65537, et comme il est difficile de v�rifier visuellement que les nombreux 478 nombres du `modulus' sont identiques, vous pouvez utiliser l'approche 479 suivante :</p> 480 481 <p><code><strong>$ openssl x509 -noout -modulus -in server.crt | openssl md5</strong></code><br /> 482 <code><strong>$ openssl rsa -noout -modulus -in server.key | openssl md5</strong></code></p> 483 484 <p>Il ne vous reste ainsi que deux nombres relativement courts � comparer. 485 Il est possible, en th�orie que ces deux nombres soient les m�mes, sans que 486 les nombres du modulus soient identiques, mais les chances en sont infimes.</p> 487 <p>Si vous souhaitez v�rifier � quelle cl� ou certificat appartient une CSR 488 particuli�re, vous pouvez effectuer le m�me calcul 489 sur la CSR comme suit :</p> 490 491 <p><code><strong>$ openssl req -noout -modulus -in server.csr | openssl md5</strong></code></p> 492 493 494<h3><a name="pemder" id="pemder">Comment convertir un certificat du format PEM 495au format DER ?</a></h3> 496<p>Le format des certificats par d�faut pour OpenSSL est le format PEM, 497qui est tout simplement un format DER cod� en Base64, avec des lignes 498d'en-t�tes et des annotations. Certaines applications, comme 499Microsoft Internet Explorer, ont besoin d'un certificat au format DER de base. 500Vous pouvez convertir un fichier PEM <code>cert.pem</code> en son �quivalent 501au format DER <code>cert.der</code> � l'aide de la commande suivante : 502<code><strong>$ openssl x509 -in cert.pem -out cert.der 503-outform DER</strong></code></p> 504 505 506<h3><a name="gid" id="gid">Pourquoi les navigateurs se plaignent-ils de ne pas pouvoir 507v�rifier mon certificat de serveur ?</a></h3> 508 509 <p>Ceci peut se produire si votre certificat de serveur est sign� 510 par une autorit� de certification interm�diaire. Plusieurs CAs, 511 comme Verisign ou Thawte, ont commenc� � signer les certificats avec 512 des certificats interm�diaires au lieu de leur certificat racine.</p> 513 514 <p>Les certificats de CA interm�diaires se situe � un niveau 515 interm�diaire entre le certificat racine de la CA (qui est install� dans les 516 navigateurs) et le certificat du serveur (que vous avez install� sur 517 votre serveur). Pour que le navigateur puisse traverser et v�rifier 518 la cha�ne de confiance depuis le certificat du serveur jusqu'au 519 certificat racine, il faut lui fournir les certificats 520 interm�diaires. Les CAs devraient pouvoir fournir de tels 521 paquetages de certificats interm�diaires � installer sur les 522 serveurs.</p> 523 524 <p>Vous devez inclure ces certificats interm�diaires via la 525 directive <code class="directive"><a href="/mod/mod_ssl.html#sslcertificatechainfile">SSLCertificateChainFile</a></code>.</p> 526 527</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 528<div class="section"> 529<h2><a name="aboutssl" id="aboutssl">Le protocole SSL</a></h2> 530<ul> 531<li><a href="#random">Pourquoi de nombreuses et al�atoires erreurs de 532protocole SSL apparaissent-elles en cas de forte charge du serveur ?</a></li> 533<li><a href="#load">Pourquoi la charge de mon serveur est-elle plus 534importante depuis qu'il sert des ressources chiffr�es en SSL ?</a></li> 535<li><a href="#establishing">Pourquoi les connexions en HTTPS � mon serveur 536prennent-elles parfois jusqu'� 30 secondes pour s'�tablir ?</a></li> 537<li><a href="#ciphers">Quels sont les algorithmes de chiffrement 538support�s par mod_ssl ?</a></li> 539<li><a href="#adh">Pourquoi une erreur ``no shared cipher'' appara�t-elle 540quand j'essaie d'utiliser un algorithme de chiffrement 541Diffie-Hellman anonyme (ADH) ?</a></li> 542<li><a href="#sharedciphers">Pourquoi une erreur ``no shared cipher'' 543appara�t-elle lorsqu'on se connecte � mon serveur 544fra�chement install� ?</a></li> 545<li><a href="#vhosts">Pourquoi ne peut-on pas utiliser SSL avec des h�tes 546virtuels identifi�s par un nom et non par une adresse IP ?</a></li> 547<li><a href="#vhosts2">Est-il possible d'utiliser 548l'h�bergement virtuel bas� sur le nom d'h�te 549pour diff�rencier plusieurs h�tes virtuels ?</a></li> 550<li><a href="#comp">Comment mettre en oeuvre la compression SSL ?</a></li> 551<li><a href="#lockicon">Lorsque j'utilise l'authentification de base sur HTTPS, 552l'ic�ne de verrouillage des navigateurs Netscape reste ouverte quand la bo�te 553de dialogue d'authentification appara�t. Cela signifie-t-il que les utilisateur 554et mot de passe sont envoy�s en clair ?</a></li> 555<li><a href="#msie">Pourquoi des erreurs d'entr�e/sortie apparaissent-elles 556lorsqu'on se connecte � un serveur Apache+mod_ssl avec 557Microsoft Internet Explorer (MSIE) ?</a></li> 558<li><a href="#srp">Comment activer TLS-SRP ?</a></li> 559<li><a href="#javadh">Pourquoi des erreurs de n�gociation apparaissent 560avec les clients bas�s sur Java lorsqu'on utilise un certificat de plus 561de 1024 bits ?</a></li> 562</ul> 563 564<h3><a name="random" id="random">Pourquoi de nombreuses et al�atoires erreurs de 565protocole SSL apparaissent-elles en cas de forte charge du serveur ?</a></h3> 566<p>Ce probl�me peut avoir plusieurs causes, mais la principale r�side dans le 567cache de session SSL d�fini par la directive 568<code class="directive"><a href="/mod/mod_ssl.html#sslsessioncache">SSLSessionCache</a></code>. Le cache de session 569DBM est souvent � la source du probl�me qui peut �tre r�solu en utilisant le 570cache de session SHM (ou en n'utilisant tout simplement pas de cache).</p> 571 572 573<h3><a name="load" id="load">Pourquoi la charge de mon serveur est-elle plus 574importante depuis qu'il sert des ressources chiffr�es en SSL ?</a></h3> 575<p>SSL utilise un proc�d� de chiffrement fort qui n�cessite la manipulation 576d'une quantit� tr�s importante de nombres. Lorsque vous effectuez une requ�te 577pour une page web via HTTPS, tout (m�me les images) est chiffr� avant d'�tre 578transmis. C'est pourquoi un accroissement du traffic HTTPS entra�ne une 579augmentation de la charge.</p> 580 581 582<h3><a name="establishing" id="establishing">Pourquoi les connexions en HTTPS � mon serveur 583prennent-elles parfois jusqu'� 30 secondes pour s'�tablir ?</a></h3> 584<p>Ce probl�me provient en g�n�ral d'un p�riph�rique <code>/dev/random</code> 585qui bloque l'appel syst�me read(2) jusqu'� ce que suffisamment d'entropie 586soit disponible pour servir la requ�te. Pour plus d'information, se r�f�rer au 587manuel de r�f�rence de la directive 588<code class="directive"><a href="/mod/mod_ssl.html#sslrandomseed">SSLRandomSeed</a></code>.</p> 589 590 591<h3><a name="ciphers" id="ciphers">Quels sont les algorithmes de chiffrement 592support�s par mod_ssl ?</a></h3> 593<p>En g�n�ral, tous les algorithmes de chiffrement support�s par la version 594d'OpenSSL install�e, le sont aussi par <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code>. La liste des 595algorithmes disponibles peut d�pendre de la mani�re dont vous avez install� 596OpenSSL. Typiquement, au moins les algorithmes suivants sont support�s :</p> 597 598 <ol> 599 <li>RC4 avec SHA1</li> 600 <li>AES avec SHA1</li> 601 <li>Triple-DES avec SHA1</li> 602 </ol> 603 604 <p>Pour d�terminer la liste r�elle des algorithmes disponibles, vous 605 pouvez utiliser la commande suivante :</p> 606 <div class="example"><p><code>$ openssl ciphers -v</code></p></div> 607 608 609<h3><a name="adh" id="adh">Pourquoi une erreur ``no shared cipher'' appara�t-elle 610quand j'essaie d'utiliser un algorithme de chiffrement 611Diffie-Hellman anonyme (ADH) ?</a></h3> 612<p>Par d�faut et pour des raisons de s�curit�, OpenSSl ne permet <em>pas</em> 613l'utilisation des algorithmes de chiffrements ADH. Veuillez vous informer 614sur les effets pervers potentiels si vous choisissez d'activer le support 615de ces algorithmes de chiffrements.</p> 616<p>Pour pouvoir utiliser les algorithmes de chiffrements Diffie-Hellman 617anonymes (ADH), vous devez compiler OpenSSL avec 618``<code>-DSSL_ALLOW_ADH</code>'', puis ajouter ``<code>ADH</code>'' � votre 619directive <code class="directive"><a href="/mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code>.</p> 620 621 622<h3><a name="sharedciphers" id="sharedciphers">Pourquoi une erreur ``no shared cipher'' 623appara�t-elle lorsqu'on se connecte � mon serveur 624fra�chement install� ?</a></h3> 625<p>Soit vous avez fait une erreur en d�finissant votre directive 626<code class="directive"><a href="/mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code> (comparez-la avec 627l'exemple pr�configur� dans <code>extra/httpd-ssl.conf</code>), soit vous avez 628choisi d'utiliser des algorithmes DSA/DH au lieu de RSA lorsque vous avez 629g�n�r� votre cl� priv�e, et avez ignor� ou �tes pass� outre les 630avertissements. Si vous avez choisi DSA/DH, votre serveur est incapable de 631communiquer en utilisant des algorithmes de chiffrements SSL bas�s sur RSA 632(du moins tant que vous n'aurez pas configur� une paire cl�/certificat RSA 633additionnelle). Les navigateurs modernes tels que NS ou IE ne peuvent 634communiquer par SSL qu'avec des algorithmes RSA. C'est ce qui provoque l'erreur 635"no shared ciphers". Pour la corriger, g�n�rez une nouvelle paire 636cl�/certificat pour le serveur en utilisant un algorithme de chiffrement 637RSA.</p> 638 639 640<h3><a name="vhosts" id="vhosts">Pourquoi ne peut-on pas utiliser SSL avec des h�tes 641virtuels identifi�s par un nom et non par une adresse IP ?</a></h3> 642<p>La raison est tr�s technique, et s'apparente au probl�me de la primaut� de 643l'oeuf ou de la poule. La couche du protocole SSL se trouve en dessous de la 644couche de protocole HTTP qu'elle encapsule. Lors de l'�tablissement d'une 645connexion SSL (HTTPS), Apache/mod_ssl doit n�gocier les param�tres du 646protocole SSL avec le client. Pour cela, mod_ssl doit consulter la 647configuration du serveur virtuel (par exemple, il doit acc�der � la suite 648d'algorithmes de chiffrement, au certificat du serveur, etc...). Mais afin de 649s�lectionner le bon serveur virtuel, Apache doit conna�tre le contenu du champ 650d'en-t�te HTTP <code>Host</code>. Pour cela, il doit lire l'en-t�te de la 651requ�te HTTP. Mais il ne peut le faire tant que la n�gociation SSL n'est pas 652termin�e, or, la phase de n�gociation SSL a besoin du nom d'h�te contenu 653dans l'en-t�te de la requ�te. Voir la question suivante pour 654contourner ce probl�me.</p> 655 656 <p>Notez que si votre certificat comporte un nom de serveur avec 657 caract�res g�n�riques, ou des noms de serveurs multiples dans le 658 champ subjectAltName, vous pouvez utiliser SSL avec les serveurs 659 virtuels � base de noms sans avoir � contourner ce probl�me.</p> 660 661 662<h3><a name="vhosts2" id="vhosts2">Est-il possible d'utiliser 663l'h�bergement virtuel bas� sur le nom d'h�te 664pour diff�rencier plusieurs h�tes virtuels ?</a></h3> 665 <p>L'h�bergement virtuel bas� sur le nom est une m�thode tr�s populaire 666 d'identification des diff�rents h�tes virtuels. Il permet d'utiliser la 667 m�me adresse IP et le m�me num�ro de port pour de nombreux sites 668 diff�rents. Lorsqu'on se tourne vers SSL, il semble tout naturel de penser 669 que l'on peut appliquer la m�me m�thode pour g�rer plusieurs h�tes 670 virtuels SSL sur le m�me serveur.</p> 671 672 <p>C'est possible, mais seulement si on utilise une version 2.2.12 673 ou sup�rieure du serveur web compil�e avec OpenSSL 674 version 0.9.8j ou sup�rieure. Ceci est du au fait que 675 l'utilisation de l'h�bergement virtuel � base de nom 676 avec SSL n�cessite une fonctionnalit� appel�e 677 Indication du Nom de Serveur (Server Name Indication - SNI) que 678 seules les r�visions les plus r�centes de la 679 sp�cification SSL supportent.</p> 680 681 <p>Notez que si votre certificat comporte un nom de serveur avec 682 caract�res g�n�riques, ou des noms de serveurs multiples dans le 683 champ subjectAltName, vous pouvez utiliser SSL avec les serveurs 684 virtuels � base de noms sans avoir � contourner ce probl�me.</p> 685 686 <p>La raison en est que le protocole SSL constitue une couche s�par�e qui 687 encapsule le protocole HTTP. Aini, la session SSL n�cessite une 688 transaction s�par�e qui prend place avant que la session HTTP n'ait d�but�. 689 Le serveur re�oit une requ�te SSL sur l'adresse IP X et le port Y 690 (habituellement 443). Comme la requ�te SSL ne contenait aucun 691 en-t�te Host:, le serveur n'avait aucun moyen de d�terminer quel h�te virtuel SSL il 692 devait utiliser. En g�n�ral, il utilisait le premier 693 qu'il trouvait et qui 694 correspondait � l'adresse IP et au port sp�cifi�s.</p> 695 696 <p>Par contre, si vous utilisez des versions du serveur web et 697 d'OpenSSL qui supportent SNI, et si le navigateur du client le 698 supporte aussi, alors le nom d'h�te sera inclus dans la 699 requ�te SSL originale, et le serveur web pourra 700 s�lectionner le bon serveur virtuel SSL.</p> 701 702 <p>Bien entendu, vous pouvez utiliser l'h�bergement virtuel bas� sur le nom 703 pour identifier de nombreux h�tes virtuels non-SSL 704 (tous sur le port 80 par exemple), et ne g�rer qu'un seul h�te virtuel SSL 705 (sur le port 443). Mais dans ce cas, vous devez d�finir le num�ro de port 706 non-SSL � l'aide de la directive NameVirtualHost dans ce style :</p> 707 708 <pre class="prettyprint lang-config">NameVirtualHost 192.168.1.1:80</pre> 709 710 711 <p>il existe d'autres solutions alternatives comme :</p> 712 713 <p>Utiliser des adresses IP diff�rentes pour chaque h�te SSL. 714 Utiliser des num�ros de port diff�rents pour chaque h�te SSL.</p> 715 716 717<h3><a name="comp" id="comp">Comment mettre en oeuvre la compression SSL ?</a></h3> 718<p>Bien que la n�gociation pour la compression SSL ait �t� d�finie dans la 719sp�cification de SSLv2 et TLS, ce n'est qu'en mai 2004 que la RFC 3749 a 720d�fini DEFLATE comme une m�thode de compression standard n�gociable. 721</p> 722<p>Depuis la version 0.9.8, OpenSSL supporte cette compression par d�faut 723lorsqu'il est compil� avec l'option <code>zlib</code>. Si le client et le 724serveur supportent la compression, elle sera utilis�e. Cependant, la 725plupart des clients essaient encore de se connecter avec un Hello SSLv2. 726Comme SSLv2 ne comportait pas de table des algorithmes de compression pr�f�r�s 727dans sa n�gociation, la compression ne peut pas �tre n�goci�e avec ces clients. 728Si le client d�sactive le support SSLv2, un Hello SSLv3 ou TLS peut �tre 729envoy�, selon la biblioth�que SSL utilis�e, et la compression peut �tre mise 730en oeuvre. Vous pouvez v�rifier si un client utilise la compression SSL en 731journalisant la variable <code>%{SSL_COMPRESS_METHOD}x</code>. 732</p> 733 734 735<h3><a name="lockicon" id="lockicon">Lorsque j'utilise l'authentification de base sur HTTPS, 736l'ic�ne de verrouillage des navigateurs Netscape reste ouverte quand la bo�te 737de dialogue d'authentification appara�t. Cela signifie-t-il que les utilisateur 738et mot de passe sont envoy�s en clair ?</a></h3> 739<p>Non, le couple utilisateur/mot de passe est transmis sous forme chiffr�e. 740 L'ic�ne de chiffrement dans les navigateurs Netscape n'est pas vraiment 741 synchronis� avec la couche SSL/TLS. Il ne passe � l'�tat verrouill� 742 qu'au moment o� la premi�re partie des donn�es relatives � la page web 743 proprement dite sont transf�r�es, ce qui peut pr�ter � confusion. Le 744 dispositif d'authentification de base appartient � la couche HTTP, qui 745 est situ�e au dessus de la couche SSL/TLS dans HTTPS. Avant tout 746 transfert de donn�es HTTP sous HTTPS, la couche SSL/TLS a d�j� achev� 747 sa phase de n�gociation et bascul� dans le mode de communication 748 chiffr�e. Ne vous laissez donc pas abuser par l'�tat de cet ic�ne.</p> 749 750 751<h3><a name="msie" id="msie">Pourquoi des erreurs d'entr�e/sortie apparaissent-elles 752lorsqu'on se connecte via HTTPS � un serveur Apache+mod_ssl avec des 753versions anciennes de 754Microsoft Internet Explorer (MSIE) ?</a></h3> 755<p>La premi�re raison en est la pr�sence dans l'impl�mentation SSL de 756certaines versions de MSIE de bogues subtils en rapport avec le 757dispositif de "maintien en vie" (keep-alive) HTTP, et les alertes de 758notification de fermeture de session SSL en cas de coupure de la 759connexion au point d'entr�e (socket). De plus, l'interaction entre 760SSL et les fonctionnalit�s HTTP/1.1 pose probl�me avec certaines 761versions de MSIE. Vous pouvez contourner ces probl�mes en interdisant 762� Apache l'utilisation de HTTP/1.1, les connexions avec maintien en vie 763ou l'envoi de messages de notification de fermeture de session SSL aux 764clients MSIE. Pour cela, vous pouvez utiliser la directive suivante 765dans votre section d'h�te virtuel avec support SSL :</p> 766 <pre class="prettyprint lang-config">SetEnvIf User-Agent "MSIE [2-5]" \ 767 nokeepalive ssl-unclean-shutdown \ 768 downgrade-1.0 force-response-1.0</pre> 769 770 <p>En outre, certaines versions de MSIE ont des probl�mes avec des 771 algorithmes de chiffrement particuliers. H�las, il n'est pas 772 possible d'apporter une solution sp�cifique � MSIE pour ces 773 probl�mes, car les algorithmes de chiffrement sont utilis�s d�s la 774 phase de n�gociation SSL. Ainsi, une directive 775 <code class="directive"><a href="/mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> sp�cifique 776 � MSIE ne peut �tre d'aucun secours. Par contre, vous devrez 777 ajuster les param�tres g�n�raux de mani�re drastique. Avant de 778 vous d�cider, soyez s�r que vos clients rencontrent vraiment des 779 probl�mes. Dans la n�gative, n'effectuez pas ces ajustements car 780 ils affecteront <em>tous</em> vos clients, ceux utilisant MSIE, 781 mais aussi les autres.</p> 782 783 784 785<h3><a name="srp" id="srp">Comment activer TLS-SRP ?</a></h3> 786 <p>Le protocole TLS-SRP (Echange de clés sécurisé par mot de passe 787 pour TLS comme spécifié dans la RFC 5054) peut compléter ou même 788 remplacer les certificats lors du processus d'authentification des 789 connexions SSL. Pour utiliser TLS-SRP, spécifiez un fichier de 790 vérification SRP OpenSSL via la directive <code class="directive"><a href="/mod/mod_ssl.html#sslsrpverifierfile">SSLSRPVerifierFile</a></code>. Vous pouvez créer 791 le fichier de vérification via l'utilitaire <code>openssl</code> :</p> 792 <div class="example"><p><code> 793 openssl srp -srpvfile passwd.srpv -add username 794 </code></p></div> 795 <p>Une fois ce fichier créé, vous devez le référencer dans la 796 configuration du serveur SSL :</p> 797 <div class="example"><p><code> 798 SSLSRPVerifierFile /path/to/passwd.srpv 799 </code></p></div> 800 <p>Pour forcer les clients � utiliser des algorithmes de chiffrement 801 basés sur TLS-SRP et s'affranchissant des certificats, utilisez la 802 directive suivante :</p> 803 <div class="example"><p><code> 804 SSLCipherSuite "!DSS:!aRSA:SRP" 805 </code></p></div> 806 807 808<h3><a name="javadh" id="javadh">Pourquoi des erreurs de n�gociation apparaissent 809avec les clients bas�s sur Java lorsqu'on utilise un certificat de plus 810de 1024 bits ?</a></h3> 811 <p>Depuis la version 2.4.7, 812 <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> utilise des param�tres DH qui comportent 813 des nombres premiers de plus de 1024 bits. Cependant, java 7 et ses versions 814 ant�rieures ne supportent que les nombres premiers DH d'une longueur 815 maximale de 1024 bits.</p> 816 817 <p>Si votre client bas� sur Java s'arr�te avec une exception telle 818 que <code>java.lang.RuntimeException: Could not generate DH 819 keypair</code> et 820 <code>java.security.InvalidAlgorithmParameterException: Prime size 821 must be multiple of 64, and can only range from 512 to 1024 822 (inclusive)</code>, et si httpd enregistre le message <code>tlsv1 823 alert internal error (SSL alert number 80)</code> dans son journal 824 des erreurs (avec un <code class="directive"><a href="/mod/core.html#loglevel">LogLevel</a></code> 825 <code>info</code> ou sup�rieur), vous pouvez soit r�arranger la 826 liste d'algorithmes de mod_ssl via la directive <code class="directive"><a href="/mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code> (�ventuellement en 827 conjonction avec la directive <code class="directive"><a href="/mod/mod_ssl.html#sslhonorcipherorder">SSLHonorCipherOrder</a></code>), soit utiliser la 828 directive <code class="directive"><a href="/mod/mod_ssl.html#sslcertificatefile">SSLCertificateFile</a></code> 829 pour configurer des param�tres DH personnalis�s avec un nombre 830 premier de 1024 bits, param�tres qui seront toujours prioritaires 831 par rapport � tout autre param�tre DH par d�faut.</p> 832 833 <p>Pour g�n�rer des param�tres DH personnalis�s, utilisez la 834 commande <code>openssl dhparam</code>. Vous pouvez aussi ajouter les 835 param�tres DH standards issus de la <a href="http://www.ietf.org/rfc/rfc2409.txt">RFC 2409</a>, section 6.2 836 au fichier <code class="directive"><a href="/mod/mod_ssl.html#sslcertificatefile">SSLCertificateFile</a></code> 837 consid�r� :</p> 838 <div class="example"><pre>-----BEGIN DH PARAMETERS----- 839MIGHAoGBAP//////////yQ/aoiFowjTExmKLgNwc0SkCTgiKZ8x0Agu+pjsTmyJR 840Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL 841/1y29Aa37e44a/taiZ+lrp8kEXxLH+ZJKGZR7OZTgf//////////AgEC 842-----END DH PARAMETERS-----</pre></div> 843 844 845</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div> 846<div class="section"> 847<h2><a name="support" id="support">Support de mod_ssl</a></h2> 848<ul> 849<li><a href="#resources">Quelles sont les sources d'informations 850disponibles en cas de probl�me avec mod_ssl ?</a></li> 851<li><a href="#contact">Qui peut-on contacter pour un support en cas de 852probl�me avec mod_ssl ?</a></li> 853<li><a href="#reportdetails">Quelles informations dois-je fournir lors 854de l'�criture d'un rapport de bogue ?</a></li> 855<li><a href="#coredumphelp">Un vidage m�moire s'est produit, 856pouvez-vous m'aider ?</a></li> 857<li><a href="#backtrace">Comment puis-je obtenir une journalisation de 858ce qui s'est pass�, pour m'aider � trouver la raison de ce vidage 859m�moire ?</a></li> 860</ul> 861 862<h3><a name="resources" id="resources">Quelles sont les sources d'informations 863disponibles en cas de probl�me avec mod_ssl ?</a></h3> 864<p>Voici les sources d'informations disponibles ; vous devez chercher 865ici en cas de probl�me.</p> 866 867 <dl> 868 <dt>Vous trouverez des r�ponses dans la Foire Aux Questions du 869 manuel utilisateur (ce document)</dt> 870 <dd><a href="http://httpd.apache.org/docs/2.4/ssl/ssl_faq.html"> 871 http://httpd.apache.org/docs/2.4/ssl/ssl_faq.html</a><br /> 872 Cherchez tout d'abord dans la foire aux questions 873 (ce document). Si votre question est courante, on a d�j� d� y 874 r�pondre de nombreuses fois, et elle fait probablement partie 875 de ce document. 876 </dd> 877 </dl> 878 879 880<h3><a name="contact" id="contact">Qui peut-on contacter pour un support en cas de 881probl�me avec mod_ssl ?</a></h3> 882 <p>Voici toutes les possibilit�s de support pour mod_ssl, par ordre 883 de pr�f�rence. Merci d'utiliser ces possibilit�s 884 <em>dans cet ordre</em> - ne vous pr�cipitez pas sur celle qui vous 885 para�t la plus all�chante. </p> 886 <ol> 887 <li><em>Envoyez un rapport de probl�me � la liste de diffusion de 888 support des utilisateurs d'Apache httpd</em><br /> 889 <a href="mailto:users@httpd.apache.org"> 890 users@httpd.apache.org</a><br /> 891 C'est la deuxi�me mani�re de soumettre votre rapport de 892 probl�me. Ici aussi, vous devez d'abord vous abonner � la 893 liste, mais vous pourrez ensuite discuter facilement de votre 894 probl�me avec l'ensemble de la communaut� d'utilisateurs 895 d'Apache httpd. 896 </li> 897 898 <li><em>Ecrire un rapport de probl�me dans la base de donn�es des 899 bogues</em><br /> 900 <a href="http://httpd.apache.org/bug_report.html"> 901 http://httpd.apache.org/bug_report.html</a><br /> 902 C'est la derni�re mani�re de soumettre votre rapport de 903 probl�me. Vous ne devez utiliser cette solution que si vous 904 avez d�j� �crit aux listes de diffusion, et n'avez pas trouv� 905 de solution. Merci de suivre les instructions de la page 906 mentionn�e ci-dessus <em>avec soin</em>. 907 </li> 908 </ol> 909 910 911<h3><a name="reportdetails" id="reportdetails">Quelles informations dois-je fournir lors 912de l'�criture d'un rapport de bogue ?</a></h3> 913<p>Vous devez toujours fournir au moins les informations 914suivantes :</p> 915 916 <dl> 917 <dt>Les versions d'Apache httpd et OpenSSL install�es</dt> 918 <dd>La version d'Apache peut �tre d�termin�e en ex�cutant 919 <code>httpd -v</code>. La version d'OpenSSL peut �tre d�termin�e 920 en ex�cutant <code>openssl version</code>. Si Lynx est install�, 921 vous pouvez aussi ex�cuter la commande<code>lynx -mime_header 922 http://localhost/ | grep Server</code> et ainsi obtenir ces 923 informations en une seule fois. 924 </dd> 925 926 <dt>Les d�tails de votre installation d'Apache httpd et OpenSSL</dt> 927 <dd>A cet effet, vous pouvez fournir un fichier journal de votre 928 session de terminal qui montre les �tapes de la configuration et 929 de l'installation. En cas d'impossibilit�, vous devez au moins 930 fournir la ligne de commande <code class="program"><a href="/programs/configure.html">configure</a></code> que 931 vous avez utilis�e. 932 </dd> 933 934 <dt>En cas de vidage m�moire, inclure une trace de ce qui s'est 935 pass�</dt> 936 <dd>Si votre serveur Apache httpd fait un vidage de sa 937 m�moire, merci de fournir en pi�ce jointe un fichier contenant 938 une trace de la zone d�di�e � la pile (voir 939 <a href="#backtrace">ci-dessous</a> pour des informations sur la mani�re 940 de l'obtenir). Il est n�cessaire de disposer de ces informations 941 afin de pouvoir d�terminer la raison de votre vidage m�moire. 942 </dd> 943 944 <dt>Une description d�taill�e de votre probl�me</dt> 945 946 <dd>Ne riez pas, nous sommes s�rieux ! De nombreux rapports 947 n'incluent pas de description de la v�ritable nature du probl�me. 948 Sans ces informations, il est tr�s difficile pour quiconque de 949 vous aider. Donc, et c'est votre propre int�r�t (vous souhaitez 950 que le probl�me soit r�solu, n'est-ce pas ?), fournissez, s'il vous 951 plait, le maximum de d�tails possible. Bien entendu, vous devez 952 aussi inclure tout ce qui a �t� dit pr�c�demment. 953 </dd> 954 </dl> 955 956 957<h3><a name="coredumphelp" id="coredumphelp">Un vidage m�moire s'est produit, 958pouvez-vous m'aider ?</a></h3> 959<p>En g�n�ral non, du moins tant que vous n'aurez pas fourni plus de 960d�tails � propos de la localisation dans le code o� Apache a effectu� 961son vidage m�moire. Ce dont nous avons en g�n�ral besoin pour vous 962aider est une trace de ce qui s'est pass� (voir la question suivante). 963Sans cette information, il est pratiquement impossible de d�terminer 964la nature du probl�me et de vous aider � le r�soudre.</p> 965 966 967<h3><a name="backtrace" id="backtrace">Comment puis-je obtenir une journalisation de 968ce qui s'est pass�, pour m'aider � trouver la raison de ce vidage 969m�moire ?</a></h3> 970<p>Vous trouverez ci-dessous les diff�rentes �tapes permettant 971d'obtenir une journalisation des �v�nements (backtrace) :</p> 972 <ol> 973 <li>Assurez-vous que les symboles de d�bogage sont disponibles, au 974 moins pour Apache. Pour cela, sur les plates-formes o� GCC/GDB est 975 utilis�, vous devez compiler Apache+mod_ssl avec l'option 976 ``<code>OPTIM="-g -ggdb3"</code>''. Sur les autres plates-formes, 977 l'option ``<code>OPTIM="-g"</code>'' est un minimum. 978 </li> 979 980 <li>D�marrez le serveur et essayez de reproduire le vidage m�moire. 981 A cet effet, vous pouvez utiliser une directive du style 982 ``<code>CoreDumpDirectory /tmp</code>'' pour �tre s�r que le 983 fichier de vidage m�moire puisse bien �tre �crit. Vous devriez 984 obtenir un fichier <code>/tmp/core</code> ou 985 <code>/tmp/httpd.core</code>. Si ce n'est pas le cas, essayez de 986 lancer votre serveur sous un UID autre que root. 987 Pour des raisons de s�curit�, de nombreux 988 noyaux modernes de permettent pas � un processus de vider sa 989 m�moire une fois qu'il a accompli un <code>setuid()</code> (� moins 990 qu'il effectue un <code>exec()</code>) car des informations d'un 991 niveau privil�gi� pourraient �tre transmises en m�moire. Si 992 n�cessaire, vous pouvez ex�cuter <code>/chemin/vers/httpd -X</code> 993 manuellement afin de ne pas permettre � Apache de se cl�ner (fork). 994 </li> 995 996 <li>Analysez le vidage m�moire. Pour cela, ex�cutez 997 <code>gdb /path/to/httpd /tmp/httpd.core</code> ou une commande 998 similaire. Dans GDB, tout ce que vous avez � faire est d'entrer 999 <code>bt</code>, et voila, vous obtenez la backtrace. Pour les 1000 d�bogueurs autres que GDB consulter le manuel correspondant. 1001 </li> 1002 </ol> 1003 1004</div></div> 1005<div class="bottomlang"> 1006<p><span>Langues Disponibles: </span><a href="/en/ssl/ssl_faq.html" hreflang="en" rel="alternate" title="English"> en </a> | 1007<a href="/fr/ssl/ssl_faq.html" title="Fran�ais"> fr </a></p> 1008</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> 1009<script type="text/javascript"><!--//--><![CDATA[//><!-- 1010var comments_shortname = 'httpd'; 1011var comments_identifier = 'http://httpd.apache.org/docs/2.4/ssl/ssl_faq.html'; 1012(function(w, d) { 1013 if (w.location.hostname.toLowerCase() == "httpd.apache.org") { 1014 d.write('<div id="comments_thread"><\/div>'); 1015 var s = d.createElement('script'); 1016 s.type = 'text/javascript'; 1017 s.async = true; 1018 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; 1019 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); 1020 } 1021 else { 1022 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); 1023 } 1024})(window, document); 1025//--><!]]></script></div><div id="footer"> 1026<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> 1027<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[//><!-- 1028if (typeof(prettyPrint) !== 'undefined') { 1029 prettyPrint(); 1030} 1031//--><!]]></script> 1032</body></html>