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="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
21<div id="path">
22<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <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">&nbsp;en&nbsp;</a> |
25<a href="/fr/ssl/ssl_faq.html" title="Fran�ais">&nbsp;fr&nbsp;</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">&lt;VirtualHost&gt;</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>&lt;a href="document.html_SSL"&gt;</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 �&nbsp; 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">&nbsp;en&nbsp;</a> |
1007<a href="/fr/ssl/ssl_faq.html" title="Fran�ais">&nbsp;fr&nbsp;</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&amp;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>