ssl_faq.html.fr revision 7fb4c0766e858653c9776474005a6ae6d94828af
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>Chiffrement SSL/TLS fort: foire aux questions - Serveur Apache HTTP</title>
<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="/images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossaire</a> | <a href="/sitemap.html">Plan du site</a></p>
<p class="apache">Serveur Apache HTTP Version 2.3</p>
<img alt="" src="/images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
<div id="path">
<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.3</a> &gt; <a href="./">SSL/TLS</a></div><div id="page-content"><div id="preamble"><h1>Chiffrement SSL/TLS fort: foire aux questions</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="/en/ssl/ssl_faq.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="/fr/ssl/ssl_faq.html" title="Fran�ais">&nbsp;fr&nbsp;</a></p>
</div>
<blockquote>
<p>Le sage n'apporte pas de bonnes r�ponses, il pose les bonnes questions</p>
<p class="cite">-- <cite>Claude Levi-Strauss</cite></p>
</blockquote>
<p>Ce chapitre propose une Foire Aux Questions (FAQ) et les r�ponses
correspondantes selon la tradition populaire USENET. La plupart des questions
ont �t� pos�s dans le Newsgroup
<code><a href="news:comp.infosystems.www.servers.unix">comp.infosystems.www.servers.unix</a></code> ou dans la liste de diffusion du
support mod_ssl <code><a href="mailto:modssl-users@modssl.org">modssl-users@modssl.org</a></code>. Elles ont �t� rassembl�es ici afin
de ne pas avoir � r�pondre encore et encore aux m�mes questions.</p>
<p>Vous �tes pri� de lire ce chapitre au moins une fois avant d'installer
mod_ssl, ou d'y rechercher la solution � votre probl�me avant de le soumettre
� l'auteur.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#about">A propos de mod_ssl</a></li>
<li><img alt="" src="/images/down.gif" /> <a href="#installation">Installation</a></li>
<li><img alt="" src="/images/down.gif" /> <a href="#aboutconfig">Configuration</a></li>
<li><img alt="" src="/images/down.gif" /> <a href="#aboutcerts">Certificats</a></li>
<li><img alt="" src="/images/down.gif" /> <a href="#aboutssl">Le protocole SSL</a></li>
<li><img alt="" src="/images/down.gif" /> <a href="#support">Support de mod_ssl</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="section">
<h2><a name="about" id="about">A propos de mod_ssl</a></h2>
<ul>
<li><a href="#history">Quel est l'historique de mod_ssl ?</a></li>
<li><a href="#wassenaar">mod_ssl et l'arrangement Wassenaar</a></li>
</ul>
<h3><a name="history" id="history">Quel est l'historique de mod_ssl ?</a></h3>
<p>Le paquet mod_ssl version 1 a �t� cr�� en avril 1998 par <a href="mailto:rse@engelschall.com">Ralf S. Engelschall</a> par portage des
patches sources 1.17 du module <a href="http://www.apache-ssl.org/">Apache-SSL</a> de <a href="mailto:ben@algroup.co.uk">Ben Laurie</a> pour Apache 1.2.6 vers
Apache 1.3b6. Il fut ensuite enti�rement r�assembl� pour Apache 1.3.0 en
fusionnant l'ancien mod_ssl 1.x avec le nouveau Apache-SSL 1.18 pour cause
de conflits avec le cycle de d�veloppement du module de Ben Laurie. Depuis
lors, mod_ssl vole de ses propres ailes sous le nom de mod_ssl v2. La
premi�re version distribu�e au public fut mod_ssl 2.0.0 � partir du
10 ao�t 1998. </p>
<p>Quand les restrictions � l'exportation des US sur les logiciels de
cryptographie furent assouplis, <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> devint partie
int�grante du serveur HTTP Apache � partir de la distribution de
Apache httpd 2.</p>
<h3><a name="wassenaar" id="wassenaar">mod_ssl est-il concern� par
l'arrangement Wassenaar ?</a></h3>
<p>Tout d'abord, examinons en quoi consiste <dfn>Wassenaar</dfn> et son
<dfn>Arrangement sur le contr�le de l'exportation des armes conventionnelles
et le double usage des biens et des technologies</dfn> : c'est un
r�glement international, �tabli en 1995, qui contr�le le commerce des armes
conventionnelles et le double usage des biens et des technologies. Il
remplace le r�glement pr�c�dent <dfn>CoCom</dfn>. Pour plus de d�tails sur
l'arrangement et ses signataires, se r�f�rer � <a href="http://www.wassenaar.org/">http://www.wassenaar.org/</a>.</p>
<p>En bref, l'Arrangement Wassenaar a pour but d'emp�cher la constitution
de puissances militaires qui pourraient menacer la s�curit� et la
stabilit� r�gionales et internationales. L'Arrangement Wassenaar contr�le
l'exportation de logiciels de cryptographie comme biens � double usage,
c'est � dire ayant des applications � la fois militaires et civiles.
Cependant, l'Arrangement Wassenaar exempte les logiciels grand public et
les logiciels libres du contr�le � l'exportation.</p>
<p>Dans l'actuelle <cite>List of Dual Use Goods and Technologies And
Munitions</cite>, sous <q>GENERAL SOFTWARE NOTE (GSN)</q>, il est �crit
<q>La liste ne prend pas en compte les "logiciels" qui sont soit :
1. [...] 2. "dans le domaine public".</q> Et sous
<q>DEFINITIONS OF TERMS USED IN THESE LISTS</q>, <q>In the public
domain</q> est d�fini comme <q>"technologie" ou "logiciel" qui a �t�
fourni sans restrictions � propos de sa redistribution ult�rieure. Note:
les restrictions de Copyright ne privent pas la "technologie" ou le
"logiciel" de leur appartenance au "domaine public".</q></p>
<p>Ainsi, selon l'Arrangement Wassenaar et sa <q>List of Dual Use Goods and
Technologies And Munitions List</q>, mod_ssl et OpenSSL appartiennent au
<q>domaine public</q>, et ne sont donc pas concern�s
par les dispositions de l'arrangement.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="section">
<h2><a name="installation" id="installation">Installation</a></h2>
<ul>
<li><a href="#mutex">Pourquoi le d�marrage d'Apache provoque-t-il des
erreurs de permission en rapport avec SSLMutex ?</a></li>
<li><a href="#entropy">Pourquoi mod_ssl s'arr�te-t-il avec l'erreur
"Failed to generate temporary 512 bit RSA private key" au d�marrage
d'Apache ?</a></li>
</ul>
<h3><a name="mutex" id="mutex">Pourquoi le d�marrage d'Apache provoque-t-il des
erreurs de permission en rapport avec SSLMutex ?</a></h3>
<p>Des erreurs telles que ``<code>mod_ssl: Child could not open
SSLMutex lockfile /opt/apache/logs/ssl_mutex.18332 (avec l'erreur
syst�me qui suit) [...] System: Permission denied (errno: 13)</code>''
sont souvent provoqu�es par des permissions trop restrictives sur les
r�pertoires <em>parents</em>. Assurez-vous que tous les r�pertoires
parents (ici <code>/opt</code>, <code>/opt/apache</code> et
<code>/opt/apache/logs</code>) ont le bit x positionn� au moins pour
l'UID sous lequel les processus enfants d'Apache s'ex�cutent (voir la
directive <code class="directive"><a href="/mod/mpm_common.html#user">User</a></code>).</p>
<h3><a name="entropy" id="entropy">Pourquoi mod_ssl s'arr�te-t-il avec l'erreur
"Failed to generate temporary 512 bit RSA private key" au d�marrage
d'Apache ?</a></h3>
<p>Pour fonctionner correctement, les logiciels de cryptographie ont
besoin d'une source de donn�es al�atoires. De nombreux syst�mes
d'exploitation libres proposent un "p�riph�rique source d'entropie"
qui fournit ce service (il se nomme en g�n�ral
<code>/dev/random</code>). Sur d'autres syst�mes, les applications
doivent amorcer manuellement
le G�n�rateur de Nombres Pseudo-Al�atoires d'OpenSSL
(Pseudo Random Number Generator -PRNG) � l'aide de donn�es appropri�es
avant de g�n�rer des cl�s ou d'effectuer un chiffrement � cl�
publique. Depuis la version 0.9.5, les fonctions d'OpenSSL qui n�cessitent
des donn�es al�atoires provoquent une erreur si le PRNG n'a pas �t� amorc�
avec une source de donn�es al�atoires d'au moins 128 bits.</p>
<p>Pour �viter cette erreur, <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> doit fournir
suffisamment d'entropie au PRNG pour lui permettre de fonctionner
correctement. Ce niveau d'entropie est d�fini par la directive
<code class="directive"><a href="/mod/mod_ssl.html#sslrandomseed">SSLRandomSeed</a></code>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="section">
<h2><a name="aboutconfig" id="aboutconfig">Configuration</a></h2>
<ul>
<li><a href="#parallel">Peut-on faire cohabiter HTTP et HTTPS sur le m�me
serveur ?</a></li>
<li><a href="#ports">Quel port HTTPS utilise-t-il ?</a></li>
<li><a href="#httpstest">Comment s'exprimer en langage HTTPS � des fins
de test ?</a></li>
<li><a href="#hang">Pourquoi la communication se bloque-t-elle lorsque je
me connecte � mon serveur Apache configur� pour SSL ?</a></li>
<li><a href="#refused">Pourquoi, lorsque je tente d'acc�der en HTTPS � mon
serveur Apache+mod_ssl fra�chement install�, l'erreur ``Connection Refused''
s'affiche-t-elle ?</a></li>
<li><a href="#envvars">Pourquoi les variables <code>SSL_XXX</code>
ne sont-elles pas disponibles dans mes scripts CGI et SSI ?</a></li>
<li><a href="#relative">Comment puis-je basculer entre les protocoles HTTP et
HTTPS dans les hyperliens relatifs ?</a></li>
</ul>
<h3><a name="parallel" id="parallel">Peut-on faire cohabiter HTTP et HTTPS sur le m�me
serveur ?</a></h3>
<p>Oui. HTTP et HTTPS utilisent des ports diff�rents (HTTP �coute le port
80 et HTTPS le port 443), si bien qu'il n'y a pas de conflit direct entre
les deux. Vous pouvez soit ex�cuter deux instances s�par�es du serveur,
chacune d'entre elles �coutant l'un de ces ports, soit utiliser l'�l�gante
fonctionnalit� d'Apache que constituent les h�tes virtuels pour cr�er
deux serveurs virtuels g�r�s par la m�me instance d'Apache - le
premier serveur r�pondant en HTTP aux requ�tes sur le port 80,
le second r�pondant en HTTPS aux requ�tes sur le port
443.</p>
<h3><a name="ports" id="ports">Quel port HTTPS utilise-t-il ?</a></h3>
<p>Vous pouvez associer le protocole HTTPS � n'importe quel port, mais le port
standard est le port 443, que tout navigateur compatible HTTPS va utiliser par
d�faut. Vous pouvez forcer votre navigateur � utiliser un port diff�rent en le
pr�cisant dans l'URL. Par exemple, si votre serveur est configur� pour
servir des pages en HTTPS sur le port 8080, vous pourrez y acc�der par
l'adresse <code>https://example.com:8080/</code>.</p>
<h3><a name="httpstest" id="httpstest">Comment s'exprimer en langage HTTPS � des fins
de test ?</a></h3>
<p>Alors que vous utilisez simplement</p>
<div class="example"><p><code>$ telnet localhost 80<br />
GET / HTTP/1.0</code></p></div>
<p>pour tester facilement Apache via HTTP, les choses ne sont pas si
simples pour HTTPS � cause du protocole SSL situ� entre TCP et HTTP.
La commande OpenSSL <code>s_client</code> vous permet cependant
d'effectuer un test similaire via HTTPS :</p>
<div class="example"><p><code>$ openssl s_client -connect localhost:443 -state -debug<br />
GET / HTTP/1.0</code></p></div>
<p>Avant la v�ritable r�ponse HTTP, vous recevrez des informations
d�taill�es � propos de l'�tablissement de la connexion SSL. Si vous
recherchez un client en ligne de commande � usage plus g�n�ral qui comprend
directement HTTP et HTTPS, qui peut effectuer des op�rations GET et POST,
peut utiliser un mandataire, supporte les requ�tes portant sur une partie
d'un fichier (byte-range), etc..., vous devriez vous tourner vers
l'excellent outil <a href="http://curl.haxx.se/">cURL</a>. Gr�ce � lui,
vous pouvez v�rifier si Apache r�pond correctement aux requ�tes via
HTTP et HTTPS comme suit :</p>
<div class="example"><p><code>$ curl http://localhost/<br />
$ curl https://localhost/</code></p></div>
<h3><a name="hang" id="hang">Pourquoi la communication se bloque-t-elle lorsque je
me connecte � mon serveur Apache configur� pour SSL ?</a></h3>
<p>Ceci peut arriver si vous vous connectez � un serveur HTTPS (ou �
un serveur virtuel) via HTTP (par exemple, en utilisant
<code>http://example.com/</code> au lieu de <code>https://example.com</code>).
Cela peut aussi arriver en essayant de vous connecter via HTTPS � un
serveur HTTP (par exemple, en utilisant <code>https://example.com/</code>
avec un serveur qui ne supporte pas HTTPS, ou le supporte, mais sur un
port non standard). Assurez-vous que vous vous connectez bien � un
serveur (virtuel) qui supporte SSL.</p>
<h3><a name="refused" id="refused">Pourquoi, lorsque je tente d'acc�der en HTTPS � mon
serveur Apache+mod_ssl fra�chement install�, l'erreur ``Connection Refused''
s'affiche-t-elle ?</a></h3>
<p>Une configuration incorrecte peut provoquer ce type d'erreur.
Assurez-vous que vos directives <code class="directive"><a href="/mod/mpm_common.html#listen">Listen</a></code> s'accordent avec vos directives
<code class="directive"><a href="/mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>. Si
l'erreur persiste, recommencez depuis le d�but en restaurant la
configuration par d�faut fournie par<code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code>.</p>
<h3><a name="envvars" id="envvars">Pourquoi les variables <code>SSL_XXX</code>
ne sont-elles pas disponibles dans mes scripts CGI et SSI ?</a></h3>
<p>Assurez-vous que la directive ``<code>SSLOptions +StdEnvVars</code>'' est
bien pr�sente dans le contexte de vos requ�tes CGI/SSI.</p>
<h3><a name="relative" id="relative">Comment puis-je basculer entre les protocoles HTTP et
HTTPS dans les hyperliens relatifs ?</a></h3>
<p>Normalement, pour basculer entre HTTP et HTTPS, vous devez utiliser des
hyperliens pleinement qualifi�s (car vous devez modifier le sch�ma de l'URL).
Cependant, � l'aide du module <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code>, vous pouvez
manipuler des hyperliens relatifs, pour obtenir le m�me effet.</p>
<div class="example"><p><code>
RewriteEngine on<br />
RewriteRule ^/(.*):SSL$ https://%{SERVER_NAME}/$1 [R,L]<br />
RewriteRule ^/(.*):NOSSL$ http://%{SERVER_NAME}/$1 [R,L]
</code></p></div>
<p>Ce jeu de r�gles rewrite vous permet d'utiliser des hyperliens de la
forme <code>&lt;a href="document.html:SSL"&gt;</code> pour passer en HTTPS
dans les liens relatifs. (Remplacez SSL par NOSSL pour passer en HTTP.)</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="section">
<h2><a name="aboutcerts" id="aboutcerts">Certificats</a></h2>
<ul>
<li><a href="#keyscerts">Qu'est-ce qu'un cl� priv�e RSA, un certificat,
une demande de signature de certificat (CSR) ?</a></li>
<li><a href="#startup">Y a-t-il une diff�rence au d�marrage entre un serveur
Apache non SSL et un serveur Apache supportant SSL ?</a></li>
<li><a href="#selfcert">Comment cr�er un certificat auto-sign� SSL � des
fins de test ?</a></li>
<li><a href="#realcert">Comment cr�er un vrai certificat SSL ?</a></li>
<li><a href="#ownca">Comment cr�er et utiliser sa propre Autorit� de
certification (CA) ?</a></li>
<li><a href="#passphrase">Comment modifier le mot de passe
de ma cl� priv�e ?</a></li>
<li><a href="#removepassphrase">Comment d�marrer Apache sans avoir � entrer de
mot de passe ?</a></li>
<li><a href="#verify">Comment v�rifier si une cl� priv�e correspond bien
� son certificat ?</a></li>
<li><a href="#badcert">Pour quelle raison une connexion �choue-t-elle avec
l'erreur "alert bad certificate" ?</a></li>
<li><a href="#keysize">Pourquoi ma cl� priv�e de 2048 bits ne
fonctionne-t-elle pas ?</a></li>
<li><a href="#hashsymlinks">Pourquoi l'authentification des clients ne
fonctionne-t-elle plus apr�s une mise � jour de SSLeay version 0.8
vers la version 0.9 ?</a></li>
<li><a href="#pemder">Comment convertir un certificat du format PEM
au format DER ?</a></li>
<li><a href="#verisign">Pourquoi ne trouve-t-on pas les programmes
<code>getca</code> ou <code>getverisign</code> mentionn�s par Verisign
pour installer un certificat Verisign ?</a></li>
<li><a href="#sgc">Puis-je utiliser la fonctionnalit� "Cryptographie Transmise
par Serveur" (Server Gated Cryptography - SGC), aussi connue sous le nom
d'Identifiant Global Verisign (Verisign Global ID) avec mod_ssl ?</a></li>
<li><a href="#gid">Pourquoi les navigateurs se plaignent-ils de ne pas pouvoir
v�rifier mon certificat de serveur Verisign Global ID ?</a></li>
</ul>
<h3><a name="keyscerts" id="keyscerts">Qu'est-ce qu'un cl� priv�e RSA, un certificat,
une demande de signature de certificat (CSR) ?</a></h3>
<p>Un fichier de cl� priv�e RSA est un fichier num�rique que vous pouvez
utiliser pour d�chiffrer des messages que l'on vous a envoy�s. Il a son
pendant � caract�re public que vous pouvez distribuer (par le biais de votre
certificat), ce qui permet aux utilisateurs de chiffrer les messages qu'ils
vous envoient.</p>
<p>Une Demande de Signature de Certificat (CSR) est un fichier num�rique
qui contient votre cl� publique et votre nom. La CSR doit �tre envoy�e �
une Autorit� de Certification (CA), qui va la convertir en vrai certificat
en la signant.</p>
<p>Un certificat contient votre cl� publique RSA, votre nom, le nom
de la CA, et est sign� num�riquement par cette derni�re. Les navigateurs
qui reconnaissent la CA peuvent v�rifier la signature du certificat, et
ainsi en extraire votre cl� publique RSA. Ceci leur permet de vous envoyer
des messages chiffr�s que vous seul pourrez d�chiffrer.</p>
<p>Se r�f�rer au chapitre <a href="ssl_intro.html">Introduction</a>
pour une description g�n�rale du protocole SSL.</p>
<h3><a name="startup" id="startup">Y a-t-il une diff�rence au d�marrage entre un serveur
Apache non SSL et un serveur Apache supportant SSL ?</a></h3>
<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
d'Apache ne pr�sente pas de diff�rences. Cependant, si votre fichier de cl�
priv�e SSL poss�de un mot de passe, vous devrez le taper au d�marrage
d'Apache.</p>
<p>Devoir entrer manuellement le mot de passe au d�marrage du serveur peut
poser quelques probl�mes - par exemple, quand le serveur est d�marr� au
moyen de scripts au lancement du syst�me. Dans ce cas, vous pouvez suivre
les �tapes <a href="#removepassphrase">ci-dessous</a> pour supprimer le
mot de passe de votre cl� priv�e. Gardez � l'esprit qu'agir ainsi augmente
les risques de s�curit� - agissez avec pr�caution !</p>
<h3><a name="selfcert" id="selfcert">Comment cr�er un certificat auto-sign� SSL � des
fins de test ?</a></h3>
<ol>
<li>V�rifiez qu'OpenSSL est install� et l'ex�cutable openssl dans votre
<code>PATH</code>.<br />
<br />
</li>
<li>Ex�cuter la commande suivante pour cr�er les fichiers
<code>server.key</code> et <code>server.crt</code> :<br />
<code><strong>$ openssl req -new -x509 -nodes -out server.crt
-keyout server.key</strong></code><br />
Ces fichiers seront utilis�s comme suit dans votre
<code>httpd.conf</code> :
<pre>
SSLCertificateFile /chemin/vers/server.crt
SSLCertificateKeyFile /chemin/vers/server.key
</pre>
</li>
<li>Il est important de savoir que le fichier <code>server.key</code> n'a
<em>pas</em> de mot de passe. Pour ajouter un mot de passe � la cl�, vous
devez ex�cuter la commande suivante et confirmer le mot de passe comme
demand�.<br />
<p><code><strong>$ openssl rsa -des3 -in server.key -out
server.key.new</strong></code><br />
<code><strong>$ mv server.key.new server.key</strong></code><br /></p>
Sauvegardez le fichier <code>server.key</code> ainsi que son mot de
passe en lieu s�r.
</li>
</ol>
<h3><a name="realcert" id="realcert">Comment cr�er un vrai certificat SSL ?</a></h3>
<p>Voici la marche � suivre pas � pas :</p>
<ol>
<li>Assurez-vous qu'OpenSSL est bien install� et dans votre <code>PATH</code>.
<br />
<br />
</li>
<li>Cr�ez une cl� priv�e RSA pour votre serveur Apache
(elle sera au format PEM et chiffr�e en Triple-DES):<br />
<br />
<code><strong>$ openssl genrsa -des3 -out server.key 1024</strong></code><br />
<br />
Enregistrez le fichier <code>server.key</code> et le mot de passe
�ventuellement d�fini en lieu s�r.
Vous pouvez afficher les d�tails de cette cl� priv�e RSA � l'aide de la
commande :<br />
<br />
<code><strong>$ openssl rsa -noout -text -in server.key</strong></code><br />
<br />
Si n�cessaire, vous pouvez aussi cr�er une version PEM non chiffr�e
(non recommand�) de cl� priv�e RSA avec :<br />
<br />
<code><strong>$ openssl rsa -in server.key -out server.key.unsecure</strong></code><br />
<br />
</li>
<li>Cr�ez une Demande de signature de Certificat (CSR) � l'aide de la
cl� priv�e pr�c�demment g�n�r�e (la sortie sera au format PEM):<br />
<br />
<code><strong>$ openssl req -new -key server.key -out server.csr</strong></code><br />
<br />
Vous devez entrer le Nom de Domaine Pleinement Qualifi�
("Fully Qualified Domain Name" ou FQDN) de votre serveur lorsqu'OpenSSL
vous demande le "CommonName", c'est � dire que si vous g�n�rez une CSR
pour un site web auquel on acc�dera par l'URL
<code>https://www.foo.dom/</code>, le FQDN sera "www.foo.dom". Vous
pouvez afficher les d�tails de ce CSR avec :<br />
<br />
<code><strong>$ openssl req -noout -text -in server.csr</strong></code><br />
<br />
</li>
<li>Vous devez maintenant envoyer la CSR � une Autorit� de Certification
(CA), afin que cette derni�re puisse la signer. Une fois la CSR sign�e,
vous disposerez d'un v�ritable certificat que vous pourrez utiliser avec
Apache. Vous pouvez faire signer votre CSR par une CA commerciale ou par
votre propre CA.<br />
Les CAs commerciales vous demandent en g�n�ral de leur envoyer la CSR
par l'interm�diaire d'un formulaire web, de r�gler le montant de la
signature, puis vous envoient un certificat sign� que vous pouvez
enregistrer dans un fichier server.crt.
Pour plus de d�tails sur la mani�re de cr�er sa propre CA, et de
l'utiliser pour signer une CSR, voir <a href="#ownca">ci-dessous</a>.<br />
Une fois la CSR sign�e, vous pouvez afficher les d�tails du certificat
comme suit :<br />
<br />
<code><strong>$ openssl x509 -noout -text -in server.crt</strong></code><br />
</li>
<li>Vous devez maintenant disposer de deux fichiers :
<code>server.key</code> et <code>server.crt</code>. Ils sont pr�cis�s dans
votre fichier <code>httpd.conf</code> comme suit :
<pre>
SSLCertificateFile /chemin/vers/server.crt
SSLCertificateKeyFile /chemin vers/server.key
</pre>
Le fichier <code>server.csr</code> n'est plus n�cessaire.
</li>
</ol>
<h3><a name="ownca" id="ownca">Comment cr�er et utiliser sa propre Autorit� de
certification (CA) ?</a></h3>
<p>La solution la plus simple consiste � utiliser les scripts
<code>CA.sh</code> ou <code>CA.pl</code> fournis avec OpenSSL. De
pr�f�rence, utilisez cette solution, � moins que vous ayez de bonnes
raisons de ne pas le faire. Dans ce dernier cas, vous pouvez cr�er un
certificat auto-sign� comme suit :</p>
<ol>
<li>Cr�ez une cl� priv�e RSA pour votre serveur
(elle sera au format PEM et chiffr�e en Triple-DES) :<br />
<br />
<code><strong>$ openssl genrsa -des3 -out server.key 1024</strong></code><br />
<br />
Sauvegardez le fichier <code>host.key</code> et le mot de passe
�ventuellement d�fini en lieu s�r.
Vous pouvez afficher les d�tails de cette cl� priv�e RSA � l'aide de la
commande :<br />
<code><strong>$ openssl rsa -noout -text -in server.key</strong></code><br />
<br />
Si n�cessaire, vous pouvez aussi cr�er une version PEM non chiffr�e
(non recommand�) de cette cl� priv�e RSA avec :<br />
<br />
<code><strong>$ openssl rsa -in server.key -out server.key.unsecure</strong></code><br />
<br />
</li>
<li>Cr�ez un certificat auto-sign� (structure X509) � l'aide de la cl� RSA
que vous venez de g�n�rer (la sortie sera au format PEM) :<br />
<br />
<code><strong>$ openssl req -new -x509 -nodes -sha1 -days 365
-key server.key -out server.crt</strong></code><br />
<br />
Cette commande signe le certificat du serveur et produit un fichier
<code>server.crt</code>. Vous pouvez afficher les d�tails de ce
certificat avec :<br />
<br />
<code><strong>$ openssl x509 -noout -text -in server.crt</strong></code><br />
<br />
</li>
</ol>
<h3><a name="passphrase" id="passphrase">Comment modifier le mot de passe
de ma cl� priv�e ?</a></h3>
<p>Vous devez simplement lire la cl� avec l'ancien mot de passe et la
r��crire en sp�cifiant le nouveau mot de passe. Pour cela, vous pouvez
utiliser les commandes suivantes :</p>
<p><code><strong>$ openssl rsa -des3 -in server.key -out server.key.new</strong></code><br />
<code><strong>$ mv server.key.new server.key</strong></code><br /></p>
<p>La premi�re fois qu'il vous est demand� un mot de passe PEM, vous
devez entrer l'ancien mot de passe. Ensuite, on vous demandera d'entrer
encore un mot de passe - cette fois, entrez le nouveau mot de passe. Si on
vous demande de v�rifier le mot de passe, vous devrez entrer le nouveau
mot de passe une seconde fois.</p>
<h3><a name="removepassphrase" id="removepassphrase">Comment d�marrer Apache sans avoir � entrer de
mot de passe ?</a></h3>
<p>L'apparition de ce dialogue au d�marrage et � chaque red�marrage provient
du fait que la cl� priv�e RSA contenue dans votre fichier server.key est
enregistr�e sous forme chiffr�e pour des raisons de s�curit�. Le
d�chiffrement de ce fichier n�cessite un mot de passe, afin de pouvoir �tre
lu et interpr�t�. Cependant, La suppression du mot de passe diminue le niveau de
s�curit� du serveur - agissez avec pr�cautions !</p>
<ol>
<li>Supprimer le chiffrement de la cl� priv�e RSA (tout en conservant une
copie de sauvegarde du fichier original) :<br />
<br />
<code><strong>$ cp server.key server.key.org</strong></code><br />
<code><strong>$ openssl rsa -in server.key.org -out server.key</strong></code><br />
<br />
</li>
<li>Assurez-vous que le fichier server.key n'est lisible que par root :<br />
<br />
<code><strong>$ chmod 400 server.key</strong></code><br />
<br />
</li>
</ol>
<p>Maintenant, <code>server.key</code> contient une copie non chiffr�e de
la cl�. Si vous utilisez ce fichier pour votre serveur, il ne vous
demandera plus de mot de passe. CEPENDANT, si quelqu'un arrive � obtenir
cette cl�, il sera en mesure d'usurper votre identit� sur le r�seau.
Vous DEVEZ par cons�quent vous assurer que seuls root ou le serveur web
peuvent lire ce fichier (de pr�f�rence, d�marrez le serveur web sous
root et faites le s'ex�cuter sous un autre utilisateur, en n'autorisant
la lecture de la cl� que par root).</p>
<p>Une autre alternative consiste � utiliser la directive
``<code>SSLPassPhraseDialog exec:/chemin/vers/programme</code>''. Gardez
cependant � l'esprit que ce n'est bien entendu ni plus ni moins
s�curis�.</p>
<h3><a name="verify" id="verify">Comment v�rifier si une cl� priv�e correspond bien
� son certificat ?</a></h3>
<p>Une cl� priv�e contient une s�rie de nombres. Deux de ces nombres forment la
"cl� publique", les autres appartiennent � la "cl� priv�e". Les bits de la
"cl� publique" sont inclus quand vous g�n�rez une CSR, et font par
cons�quent partie du certificat associ�.</p>
<p>Pour v�rifier que la cl� publique contenue dans votre certificat
correspond bien � la partie publique de votre cl� priv�e, il vous suffit
de comparer ces nombres. Pour afficher le certificat et la cl�,
utilisez cette commande :</p>
<p><code><strong>$ openssl x509 -noout -text -in server.crt</strong></code><br />
<code><strong>$ openssl rsa -noout -text -in server.key</strong></code></p>
<p>Les parties `modulus' et `public exponent' doivent �tre identiques dans
la cl� et le certificat. Comme le `public exponent' est habituellement
65537, et comme il est difficile de v�rifier visuellement que les nombreux
nombres du `modulus' sont identiques, vous pouvez utiliser l'approche
suivante :</p>
<p><code><strong>$ openssl x509 -noout -modulus -in server.crt | openssl md5</strong></code><br />
<code><strong>$ openssl rsa -noout -modulus -in server.key | openssl md5</strong></code></p>
<p>Il ne vous reste ainsi que deux nombres relativement courts � comparer.
Il est possible, en th�orie que ces deux nombres soient les m�mes, sans que
les nombres du modulus soient identiques, mais les chances en sont infimes.</p>
<p>Si vous souhaitez v�rifier � quelle cl� ou certificat appartient une CSR
particuli�re, vous pouvez effectuer le m�me calcul
sur la CSR comme suit :</p>
<p><code><strong>$ openssl req -noout -modulus -in server.csr | openssl md5</strong></code></p>
<h3><a name="badcert" id="badcert">&gt;Pour quelle raison une connexion �choue-t-elle avec
l'erreur "alert bad certificate" ?</a></h3>
<p>Les erreurs du type <code>OpenSSL: error:14094412: SSL
routines:SSL3_READ_BYTES:sslv3 alert bad certificate</code> dans le fichier
journal de SSL sont souvent caus�es par un navigateur qui ne sait pas
manipuler le certificat ou la cl� priv�e du serveur. Par exemple,
Netscape Navigator 3.x ne reconna�t pas une cl� RSA dont la longueur
est diff�rente de 1024 bits.</p>
<h3><a name="keysize" id="keysize">Pourquoi ma cl� priv�e de 2048 bits ne
fonctionne-t-elle pas ?</a></h3>
<p>La longueur des cl�s priv�es pour SSL doit �tre de 512 ou 1024 bits, pour
des raison de compatibilit� avec certains navigateurs. Une longueur de 1024
bits est recommand�e car des cl�s d'une longueur sup�rieure sont incompatibles
avec certaines versions de Netscape Navigator et Microsoft Internet Explorer,
ainsi qu'avec d'autres navigateurs qui utilisent le kit de chiffrement
BSAFE de RSA.</p>
<h3><a name="hashsymlinks" id="hashsymlinks">Pourquoi l'authentification des clients ne
fonctionne-t-elle plus apr�s une mise � jour de SSLeay version 0.8
vers la version 0.9 ?</a></h3>
<p>Les certificats de CA situ�s dans le chemin que vous avez
d�fini � l'aide de <code>SSLCACertificatePath</code> sont localis�s par
SSLeay au moyen de liens symboliques repr�sentant l'empreinte du certificat
(hash symlinks). Ces empreintes sont g�n�r�es � l'aide de la commande
`<code>openssl x509 -noout -hash</code>'. Cependant, SSLeay 0.8 et 0.9
utilisent des algorithmes diff�rents pour calculer l'empreinte d'un
certificat. Vous devrez supprimer les anciens liens symboliques et en cr�er
de nouveau apr�s la mise � jour. Utilisez le <code>Makefile</code> fourni par
<code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code>.</p>
<h3><a name="pemder" id="pemder">Comment convertir un certificat du format PEM
au format DER ?</a></h3>
<p>Le format des certificats par d�faut pour SSLeay/OpenSSL est le format PEM,
qui est tout simplement un format DER cod� en Base64, avec des lignes
d'en-t�tes et des annotations. Certaines applications, comme
Microsoft Internet Explorer, ont besoin d'un certificat au format DER de base.
Vous pouvez convertir un fichier PEM <code>cert.pem</code> en son �quivalent
au format DER <code>cert.der</code> � l'aide de la commande suivante :
<code><strong>$ openssl x509 -in cert.pem -out cert.der
-outform DER</strong></code></p>
<h3><a name="verisign" id="verisign">Pourquoi ne trouve-t-on pas les programmes
<code>getca</code> ou <code>getverisign</code> mentionn�s par Verisign
pour installer un certificat Verisign ?</a></h3>
<p>Verisign n'a jamais fourni d'instructions sp�cifiques � Apache+mod_ssl.
Les instructions fournies concernent Stronghold de C2Net (un serveur
commercial bas� sur Apache avec support SSL).</p>
<p>Pour installer votre certificat, il vous suffit d'enregistrer le
certificat dans un fichier, et de fournir le nom de ce fichier � la directive
<code class="directive"><a href="/mod/mod_ssl.html#sslcertificatefile">SSLCertificateFile</a></code>. Vous devez aussi
fournir le nom du fichier contenant la cl� priv�e. Pour plus de d�tails, voir
la directive <code class="directive"><a href="/mod/mod_ssl.html#sslcertificatekeyfile">SSLCertificateKeyFile</a></code>.</p>
<h3><a name="sgc" id="sgc">Puis-je utiliser la fonctionnalit� "Cryptographie Transmise
par Serveur" (Server Gated Cryptography - SGC), aussi connue sous le nom
d'Identifiant Global Verisign (Verisign Global ID) avec mod_ssl ?</a></h3>
<p>Oui. <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> supporte SGC depuis la version 2.1. Aucune
configuration sp�cifique n'est n�cessaire - utilisez simplement le
Global ID comme certificat de serveur. La <em>mise � niveau</em> des clients
est g�r�e automatiquement par <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> � l'ex�cution.</p>
<h3><a name="gid" id="gid">Pourquoi les navigateurs se plaignent-ils de ne pas pouvoir
v�rifier mon certificat de serveur Verisign Global ID ?</a></h3>
<p>Verisign utilise un certificat de CA interm�diaire entre le certificat
de CA racine (install� dans les navigateurs) et le certificat du serveur (que
vous avez install� sur le serveur). Verisign a d� vous envoyer ce certificat
de CA additionnel. Dans la n�gative, r�clamez-le. Ensuite, installez ce
certificat � l'aide de la directive
<code class="directive"><a href="/mod/mod_ssl.html#sslcertificatechainfile">SSLCertificateChainFile</a></code>. Ceci assure
que le certificat de CA interm�diaire est bien envoy� au navigateur, ce qui
comble le vide dans la cha�ne de certification.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="section">
<h2><a name="aboutssl" id="aboutssl">Le protocole SSL</a></h2>
<ul>
<li><a href="#random">Pourquoi de nombreuses et al�atoires erreurs de
protocole SSL apparaissent-elles en cas de forte charge du serveur ?</a></li>
<li><a href="#load">Pourquoi la charge de mon serveur est-elle plus
importante depuis qu'il sert des ressources chiffr�es en SSL ?</a></li>
<li><a href="#establishing">Pourquoi les connexions en HTTPS � mon serveur
prennent-elles parfois jusqu'� 30 secondes pour s'�tablir ?</a></li>
<li><a href="#ciphers">Quels sont les algorithmes de chiffrement
support�s par mod_ssl ?</a></li>
<li><a href="#adh">Pourquoi une erreur ``no shared cipher'' appara�t-elle
quand j'essaie d'utiliser un algorithme de chiffrement
Diffie-Hellman anonyme (ADH) ?</a></li>
<li><a href="#sharedciphers">Pourquoi une erreur ``no shared cipher''
appara�t-elle lorsqu'on se connecte � mon serveur
fra�chement install� ?</a></li>
<li><a href="#vhosts">Pourquoi ne peut-on pas utiliser SSL avec des h�tes
virtuels identifi�s par un nom et non par une adresse IP ?</a></li>
<li><a href="#vhosts2">Pourquoi n'est-il pas possible d'utiliser
l'h�bergement virtuel bas� sur le nom d'h�te
pour diff�rencier plusieurs h�tes virtuels ?</a></li>
<li><a href="#comp">Comment mettre en oeuvre la compression SSL ?</a></li>
<li><a href="#lockicon">Lorsque j'utilise l'authentification de base sur HTTPS,
l'ic�ne de verrouillage des navigateurs Netscape reste ouverte quand la bo�te
de dialogue d'authentification appara�t. Cela signifie-t-il que les utilisateur
et mot de passe sont envoy�s en clair ?</a></li>
<li><a href="#msie">Pourquoi des erreurs d'entr�e/sortie apparaissent-elles
lorsqu'on se connecte � un serveur Apache+mod_ssl avec
Microsoft Internet Explorer (MSIE) ?</a></li>
<li><a href="#nn">Pourquoi des erreurs d'entr�e/sortie apparaissent-elles, ou
le message "Netscape a re�u des donn�es erron�es du serveur" s'affiche-t-il,
lorsqu'on se connecte � un serveur Apache+mod_ssl
avec Netscape Navigator ?</a></li>
</ul>
<h3><a name="random" id="random">Pourquoi de nombreuses et al�atoires erreurs de
protocole SSL apparaissent-elles en cas de forte charge du serveur ?</a></h3>
<p>Ce probl�me peut avoir plusieurs causes, mais la principale r�side dans le
cache de session SSL d�fini par la directive
<code class="directive"><a href="/mod/mod_ssl.html#sslsessioncache">SSLSessionCache</a></code>. Le cache de session
DBM est souvent � la source du probl�me qui peut �tre r�solu en utilisant le
cache de session SHM (ou en n'utilisant tout simplement pas de cache).</p>
<h3><a name="load" id="load">Pourquoi la charge de mon serveur est-elle plus
importante depuis qu'il sert des ressources chiffr�es en SSL ?</a></h3>
<p>SSL utilise un proc�d� de chiffrement fort qui n�cessite la manipulation
d'une quantit� tr�s importante de nombres. Lorsque vous effectuez une requ�te
pour une page web via HTTPS, tout (m�me les images) est chiffr� avant d'�tre
transmis. C'est pourquoi un accroissement du traffic HTTPS entra�ne une
augmentation de la charge.</p>
<h3><a name="establishing" id="establishing">Pourquoi les connexions en HTTPS � mon serveur
prennent-elles parfois jusqu'� 30 secondes pour s'�tablir ?</a></h3>
<p>Ce probl�me provient en g�n�ral d'un p�riph�rique <code>/dev/random</code>
qui bloque l'appel syst�me read(2) jusqu'� ce que suffisamment d'entropie
soit disponible pour servir la requ�te. Pour plus d'information, se r�f�rer au
manuel de r�f�rence de la directive
<code class="directive"><a href="/mod/mod_ssl.html#sslrandomseed">SSLRandomSeed</a></code>.</p>
<h3><a name="ciphers" id="ciphers">Quels sont les algorithmes de chiffrement
support�s par mod_ssl ?</a></h3>
<p>En g�n�ral, tous les algorithmes de chiffrement support�s par la version
d'OpenSSL install�e, le sont aussi par <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code>. La liste des
algorithmes disponibles peut d�pendre de la mani�re dont vous avez install�
OpenSSL. Typiquement, au moins les algorithmes suivants sont support�s :</p>
<ol>
<li>RC4 avec MD5</li>
<li>RC4 avec MD5 (version d'exportation limit�e � une cl� de 40 bits)</li>
<li>RC2 avec MD5</li>
<li>RC2 avec MD5 (version d'exportation limit�e � une cl� de 40 bits)</li>
<li>IDEA avec MD5</li>
<li>DES avec MD5</li>
<li>Triple-DES avec MD5</li>
</ol>
<p>Pour d�terminer la liste r�elle des algorithmes disponibles, vous
pouvez utiliser la commande suivante :</p>
<div class="example"><p><code>$ openssl ciphers -v</code></p></div>
<h3><a name="adh" id="adh">Pourquoi une erreur ``no shared cipher'' appara�t-elle
quand j'essaie d'utiliser un algorithme de chiffrement
Diffie-Hellman anonyme (ADH) ?</a></h3>
<p>Par d�faut et pour des raisons de s�curit�, OpenSSl ne permet <em>pas</em>
l'utilisation des algorithmes de chiffrements ADH. Veuillez vous informer
sur les effets pervers potentiels si vous choisissez d'activer le support
de ces algorithmes de chiffrements.</p>
<p>Pour pouvoir utiliser les algorithmes de chiffrements Diffie-Hellman
anonymes (ADH), vous devez compiler OpenSSL avec
``<code>-DSSL_ALLOW_ADH</code>'', puis ajouter ``<code>ADH</code>'' � votre
directive <code class="directive"><a href="/mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code>.</p>
<h3><a name="sharedciphers" id="sharedciphers">Pourquoi une erreur ``no shared cipher''
appara�t-elle lorsqu'on se connecte � mon serveur
fra�chement install� ?</a></h3>
<p>Soit vous avez fait une erreur en d�finissant votre directive
<code class="directive"><a href="/mod/mod_ssl.html#sslciphersuite">SSLCipherSuite</a></code> (comparez-la avec
l'exemple pr�configur� dans <code>httpd.conf-dist</code>), soit vous avez
choisi d'utiliser des algorithmes DSA/DH au lieu de RSA lorsque vous avez
g�n�r� votre cl� priv�e, et avez ignor� ou �tes pass� outre les
avertissements. Si vous avez choisi DSA/DH, votre serveur est incapable de
communiquer en utilisant des algorithmes de chiffrements SSL bas�s sur RSA
(du moins tant que vous n'aurez pas configur� une paire cl�/certificat RSA
additionnelle). Les navigateurs modernes tels que NS ou IE ne peuvent
communiquer par SSL qu'avec des algorithmes RSA. C'est ce qui provoque l'erreur
"no shared ciphers". Pour la corriger, g�n�rez une nouvelle paire
cl�/certificat pour le serveur en utilisant un algorithme de chiffrement
RSA.</p>
<h3><a name="vhosts" id="vhosts">Pourquoi ne peut-on pas utiliser SSL avec des h�tes
virtuels identifi�s par un nom et non par une adresse IP ?</a></h3>
<p>La raison est tr�s technique, et s'apparente au probl�me de la primaut� de
l'oeuf ou de la poule. La couche du protocole SSL se trouve en dessous de la
couche de protocole HTTP qu'elle encapsule. Lors de l'�tablissement d'une
connexion SSL (HTTPS), Apache/mod_ssl doit n�gocier les param�tres du
protocole SSL avec le client. Pour cela, mod_ssl doit consulter la
configuration du serveur virtuel (par exemple, il doit acc�der � la la suite
d'algorithmes de chiffrement, au certificat du serveur, etc...). Mais afin de
s�lectionner le bon serveur virtuel, Apache doit conna�tre le contenu du champ
d'en-t�te HTTP <code>Host</code>. Pour cela, il doit lire l'en-t�te de la
requ�te HTTP. Mais il ne peut le faire tant que la n�gociation SSL n'est pas
termin�e, or, la phase de n�gociation SSL a besoin du nom d'h�te contenu
dans l'en-t�te de la requ�te. Bingo !</p>
<h3><a name="vhosts2" id="vhosts2">Pourquoi n'est-il pas possible d'utiliser
l'h�bergement virtuel bas� sur le nom d'h�te
pour diff�rencier plusieurs h�tes virtuels ?</a></h3>
<p>L'h�bergement virtuel bas� sur le nom est une m�thode tr�s populaire
d'identification des diff�rents h�tes virtuels. Il permet d'utiliser la
m�me adresse IP et le m�me num�ro de port pour de nombreux sites
diff�rents. Lorsqu'on se tourne vers SSL, il semble tout naturel de penser
que l'on peut appliquer la m�me m�thode pour g�rer plusieurs h�tes
virtuels SSL sur le m�me serveur.</p>
<p>Et l�, on re�oit un choc en apprenant que ce n'est pas possible.</p>
<p>La raison en est que le protocole SSL constitue une couche s�par�e qui
encapsule le protocole HTTP. Aini, la session SSL n�cessite une
transaction s�par�e qui prend place avant que la session HTTP n'ait d�but�.
Le serveur re�oit une requ�te SSL sur l'adresse IP X et le port Y
(habituellement 443). Comme la requ�te SSL ne contient aucun champ relatif
� l'h�te, le serveur n'a aucun moyen de d�terminer quel h�te virtuel SSL il
doit utiliser. En g�n�ral, il utilisera le premier qu'il trouve et qui
correspond � l'adresse IP et au port sp�cifi�s.</p>
<p>Bien entendu, vous pouvez utiliser l'h�bergement virtuel bas� sur le nom
pour identifier de nombreux h�tes virtuels non-SSL
(tous sur le port 80 par exemple), et ne g�rer qu'un seul h�te virtuel SSL
(sur le port 443). Mais dans ce cas, vous devez d�finir le num�ro de port
non-SSL � l'aide de la directive NameVirtualHost dans ce style :</p>
<div class="example"><p><code>
NameVirtualHost 192.168.1.1:80
</code></p></div>
<p>il existe d'autres solutions alternatives comme :</p>
<p>Utiliser des adresses IP diff�rentes pour chaque h�te SSL.
Utiliser des num�ros de port diff�rents pour chaque h�te SSL.</p>
<h3><a name="comp" id="comp">Comment mettre en oeuvre la compression SSL ?</a></h3>
<p>Bien que la n�gociation pour la compression SSL ait �t� d�finie dans la
sp�cification de SSLv2 et TLS, ce n'est qu'en mai 2004 que la RFC 3749 a
d�fini DEFLATE comme une m�thode de compression standard n�gociable.
</p>
<p>Depuis la version 0.9.8, OpenSSL supporte cette compression par d�faut
lorsqu'il est compil� avec l'option <code>zlib</code>. Si le client et le
serveur supportent la compression, elle sera utilis�e. Cependant, la
plupart des clients essaient encore de se connecter avec un Hello SSLv2.
Comme SSLv2 ne comportait pas de table des algorithmes de compression pr�f�r�s
dans sa n�gociation, la compression ne peut pas �tre n�goci�e avec ces clients.
Si le client d�sactive le support SSLv2, un Hello SSLv3 ou TLS peut �tre
envoy�, selon la biblioth�que SSL utilis�e, et la compression peut �tre mise
en oeuvre. Vous pouvez v�rifier si un client utilise la compression SSL en
journalisant la variable <code>%{SSL_COMPRESS_METHOD}x</code>.
</p>
<h3><a name="lockicon" id="lockicon">Lorsque j'utilise l'authentification de base sur HTTPS,
l'ic�ne de verrouillage des navigateurs Netscape reste ouverte quand la bo�te
de dialogue d'authentification appara�t. Cela signifie-t-il que les utilisateur
et mot de passe sont envoy�s en clair ?</a></h3>
<p>Non, le couple utilisateur/mot de passe est transmis sous forme chiffr�e.
L'ic�ne de chiffrement dans les navigateurs Netscape n'est pas vraiment
synchronis� avec la couche SSL/TLS. Il ne passe � l'�tat verrouill�
qu'au moment o� la premi�re partie des donn�es relatives � la page web
proprement dite sont transf�r�es, ce qui peut pr�ter � confusion. Le
dispositif d'authentification de base appartient � la couche HTTP, qui
est situ�e au dessus de la couche SSL/TLS dans HTTPS. Avant tout
transfert de donn�es HTTP sous HTTPS, la couche SSL/TLS a d�j� achev�
sa phase de n�gociation et bascul� dans le mode de communication
chiffr�e. Ne vous laissez donc pas abuser par l'�tat de cet ic�ne.</p>
<h3><a name="msie" id="msie">Pourquoi des erreurs d'entr�e/sortie apparaissent-elles
lorsqu'on se connecte � un serveur Apache+mod_ssl avec
Microsoft Internet Explorer (MSIE) ?</a></h3>
<p>La premi�re raison en est la pr�sence dans l'impl�mentation SSL de
certaines versions de MSIE de bogues subtils en rapport avec le
dispositif de "maintien en vie" (keep-alive) HTTP, et les alertes de
notification de fermeture de session SSL en cas de coupure de la
connexion au point d'entr�e (socket). De plus, l'interaction entre
SSL et les fonctionnalit�s HTTP/1.1 pose probl�me avec certaines
versions de MSIE. Vous pouvez contourner ces probl�mes en interdisant
� Apache l'utilisation de HTTP/1.1, les connexions avec maintien en vie
ou l'envoi de messages de notification de fermeture de session SSL aux
clients MSIE. Pour cela, vous pouvez utiliser la directive suivante
dans votre section d'h�te virtuel avec support SSL :</p>
<div class="example"><p><code>
SetEnvIf User-Agent ".*MSIE.*" \<br />
nokeepalive ssl-unclean-shutdown \<br />
downgrade-1.0 force-response-1.0
</code></p></div>
<p>En outre, certaines versions de MSIE ont des probl�mes avec des
algorithmes de chiffrement particuliers. H�las, il n'est pas
possible d'apporter une solution sp�cifique � MSIE pour ces
probl�mes, car les algorithmes de chiffrement sont utilis�s d�s la
phase de n�gociation SSL. Ainsi, une directive
<code class="directive"><a href="/mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> sp�cifique
� MSIE ne peut �tre d'aucun secours. Par contre, vous devrez
ajuster les param�tres g�n�raux de mani�re drastique. Avant de
vous d�cider, soyez s�r que vos clients rencontrent vraiment des
probl�mes. Dans la n�gative, n'effectuez pas ces ajustements car
ils affecteront <em>tous</em> vos clients, ceux utilisant MSIE,
mais aussi les autres.</p>
<p>Un autre probl�me vient du fait que les versions d'exportation
56 bits de MSIE 5.x pr�sentent une mauvaise impl�mentation de
SSLv3, qui interagit de mani�re inappropri�e avec les versions
d'OpenSSL sup�rieures � 0.9.4. Vous pouvez ignorer ce probl�me et
demander � vos clients de mettre � jour leurs navigateurs, vous
pouvez revenir � OpenSSL 0.9.4 (non recommand�), ou vous pouvez
contourner le probl�me, en sachant que vos modifications
affecteront tous les types de navigateurs :</p>
<div class="example"><p><code>SSLProtocol all -SSLv3</code></p></div>
<p>va d�sactiver compl�tement le protocole SSLv3 et ainsi permettre
aux navigateurs concern�s de fonctionner. Une meilleure solution
consiste � ne d�sactiver que les algorithmes de chiffrement qui
posent probl�me.</p>
<div class="example"><p><code>SSLCipherSuite
ALL:!ADH:<strong>!EXPORT56</strong>:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP</code>
</p></div>
<p>Ceci permet aussi aux versions de MSIE incrimin�es de
fonctionner, mais n'enl�ve que le support des derniers algorithmes
de chiffrement TLS 56 bits.</p>
<p>Autre probl�me avec les clients MSIE 5.x : ils refusent de se
connecter � des URLs de la forme <code>https://12.34.56.78/</code>
(o� une adresse IP est utilis�e � la place d'un nom d'h�te), si le
serveur utilise le dispositif de cryptographie transmise par le
serveur (SGC). Le probl�me ne peut �tre contourn� qu'en utilisant
le nom de domaine pleinement qualifi� (FQDN) du site web dans les
hyperliens � la place de l'adresse IP, car MSIE 5.x g�re la
n�gociation SGC de mani�re inappropri�e.</p>
<p>Enfin, pour certaines versions de MSIE, il semble n�cessaire
qu'une session SSL puisse �tre r�utilis�e (un comportement tout �
fait non conforme aux standard, bien entendu). Les connections avec
ces versions de MSIE ne fonctionnent que si un cache de session SSL
est mis en oeuvre. Ainsi, pour contourner le probl�me, assurez-vous
d'utiliser un cache de session (voir la directive
<code class="directive"><a href="/mod/mod_ssl.html#sslsessioncache">SSLSessionCache</a></code>).</p>
<h3><a name="nn" id="nn">Pourquoi des erreurs d'entr�e/sortie apparaissent-elles, ou
le message "Netscape a re�u des donn�es erron�es du serveur" s'affiche-t-il,
lorsqu'on se connecte � un serveur Apache+mod_ssl
avec Netscape Navigator ?</a></h3>
<p>
Ceci arrive en g�n�ral quand vous avez cr�� un nouveau certificat
de serveur pour un domaine donn�, mais aviez auparavant configur�
votre navigateur pour toujours accepter l'ancien certificat du
serveur. Si vous supprimez de votre navigateur l'entr�e
correspondant � l'ancien certificat, tout devrait rentrer dans
l'ordre. L'impl�mentation de SSL dans Netscape �tant correcte, les
erreurs d'entr�es/sorties avec Netscape Navigator sont en g�n�ral
caus�es par les certificats install�s.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
<div class="section">
<h2><a name="support" id="support">Support de mod_ssl</a></h2>
<ul>
<li><a href="#resources">Quelles sont les sources d'informations
disponibles en cas de probl�me avec mod_ssl ?</a></li>
<li><a href="#contact">Qui peut-on contacter pour un support en cas de
probl�me avec mod_ssl ?</a></li>
<li><a href="#reportdetails">Quelles informations dois-je fournir lors
de l'�criture d'un rapport de bogue ?</a></li>
<li><a href="#coredumphelp">Un vidage m�moire s'est produit,
pouvez-vous m'aider ?</a></li>
<li><a href="#backtrace">Comment puis-je obtenir une journalisation de
ce qui s'est pass�, pour m'aider � trouver la raison de ce vidage
m�moire ?</a></li>
</ul>
<h3><a name="resources" id="resources">Quelles sont les sources d'informations
disponibles en cas de probl�me avec mod_ssl ?</a></h3>
<p>Voici les sources d'informations disponibles ; vous devez chercher
ici en cas de probl�me.</p>
<dl>
<dt>Vous trouverez des r�ponses dans la Foire Aux Questions du
manuel utilisateur (ce document)</dt>
<dd><a href="http://httpd.apache.org/docs/trunk/ssl/ssl_faq.html">
http://httpd.apache.org/docs/trunk/ssl/ssl_faq.html</a><br />
Cherchez tout d'abord dans la foire aux questions
(ce document). Si votre question est courante, on a d�j� d� y
r�pondre de nombreuses fois, et elle fait probablement partie
de ce document.
</dd>
<dt>Les archives de la liste de diffusion de support modssl-users
<a href="http://www.modssl.org/support/">http://www.modssl.org/support/</a></dt>
<dd>Vous pouvez chercher la solution � votre probl�me dans les
archives de la liste de diffusion modssl-users. Vous n'�tes
probablement pas la premi�re personne � rencontrer ce probl�me !
</dd>
</dl>
<h3><a name="contact" id="contact">Qui peut-on contacter pour un support en cas de
probl�me avec mod_ssl ?</a></h3>
<p>Voici toutes les possibilit�s de support pour mod_ssl, par ordre
de pr�f�rence. Merci d'utiliser ces possibilit�s
<em>dans cet ordre</em> - ne vous pr�cipitez pas sur celle qui vous
para�t la plus all�chante. </p>
<ol>
<li><em>Envoyez un rapport de probl�me � la liste de diffusion de
support modssl-users</em><br />
<a href="mailto:modssl-users@modssl.org">
modssl-users@modssl.org</a><br />
C'est la mani�re la plus efficace de soumettre votre rapport de
probl�me, car ainsi, les autres en sont inform�s, et pourront
b�n�ficier des r�ponses apport�es. Vous devez tout d'abord vous
abonner � la liste, mais vous pourrez ensuite discuter
facilement de votre probl�me avec l'auteur et l'ensemble de la
communaut� d'utilisateurs de mod_ssl.
</li>
<li><em>Envoyez un rapport de probl�me � la liste de diffusion de
support des utilisateurs d'Apache httpd</em><br />
<a href="mailto:users@httpd.apache.org">
users@httpd.apache.org</a><br />
C'est la deuxi�me mani�re de soumettre votre rapport de
probl�me. Ici aussi, vous devez d'abord vous abonner � la
liste, mais vous pourrez ensuite discuter facilement de votre
probl�me avec l'ensemble de la communaut� d'utilisateurs
d'Apache httpd.
</li>
<li><em>Ecrire un rapport de probl�me dans la base de donn�es des
bogues</em><br />
<a href="http://httpd.apache.org/bug_report.html">
http://httpd.apache.org/bug_report.html</a><br />
C'est la derni�re mani�re de soumettre votre rapport de
probl�me. Vous ne devez utiliser cette solution que si vous
avez d�j� �crit aux listes de diffusion, et n'avez pas trouv�
de solution. Merci de suivre les instructions de la page
mentionn�e ci-dessus <em>avec soin</em>.
</li>
</ol>
<h3><a name="reportdetails" id="reportdetails">Quelles informations dois-je fournir lors
de l'�criture d'un rapport de bogue ?</a></h3>
<p>Vous devez toujours fournir au moins les informations
suivantes :</p>
<dl>
<dt>Les versions d'Apache et OpenSSL install�es</dt>
<dd>La version d'Apache peut �tre d�termin�e en ex�cutant
<code>httpd -v</code>. La version d'OpenSSL peut �tre d�termin�e
en ex�cutant <code>openssl version</code>. Si Lynx est install�,
vous pouvez aussi ex�cuter la commande<code>lynx -mime_header
http://localhost/ | grep Server</code> et ainsi obtenir ces
informations en une seule fois.
</dd>
<dt>Les d�tails de votre installation d'Apache+mod_ssl+OpenSSL</dt>
<dd>A cet effet, vous pouvez fournir un fichier journal de votre
session de terminal qui montre les �tapes de la configuration et
de l'installation. En cas d'impossibilit�, vous devez au moins
fournir la ligne de commande <code class="program"><a href="/programs/configure.html">configure</a></code> que
vous avez utilis�e.
</dd>
<dt>En cas de vidage m�moire, inclure une trace de ce qui s'est
pass�</dt>
<dd>Si votre serveur Apache+mod_ssl+OpenSSL fait un vidage de sa
m�moire, merci de fournir en pi�ce jointe un fichier contenant
une trace de la zone d�di�e � la pile (voir
<a href="#backtrace">ci-dessous</a> pour des informations sur la mani�re
de l'obtenir). Il est n�cessaire de disposer de ces informations
afin de pouvoir d�terminer la raison de votre vidage m�moire.
</dd>
<dt>Une description d�taill�e de votre probl�me</dt>
<dd>Ne riez pas, nous sommes s�rieux ! De nombreux rapports
n'incluent pas de description de la v�ritable nature du probl�me.
Sans ces informations, il est tr�s difficile pour quiconque de
vous aider. Donc, et c'est votre propre int�r�t (vous souhaitez
que le probl�me soit r�solu, n'est-ce pas ?), fournissez, s'il vous
plait, le maximum de d�tails possible. Bien entendu, vous devez
aussi inclure tout ce qui a �t� dit pr�c�demment.
</dd>
</dl>
<h3><a name="coredumphelp" id="coredumphelp">Un vidage m�moire s'est produit,
pouvez-vous m'aider ?</a></h3>
<p>En g�n�ral non, du moins tant que vous n'aurez pas fourni plus de
d�tails � propos de la localisation dans le code o� Apache a effectu�
son vidage m�moire. Ce dont nous avons en g�n�ral besoin pour vous
aider est une trace de ce qui s'est pass� (voir la question suivante).
Sans cette information, il est pratiquement impossible de d�terminer
la nature du probl�me et de vous aider � le r�soudre.</p>
<h3><a name="backtrace" id="backtrace">Comment puis-je obtenir une journalisation de
ce qui s'est pass�, pour m'aider � trouver la raison de ce vidage
m�moire ?</a></h3>
<p>Vous trouverez ci-dessous les diff�rentes �tapes permettant
d'obtenir une journalisation des �v�nements (backtrace) :</p>
<ol>
<li>Assurez-vous que les symboles de d�bogage sont disponibles, au
moins pour Apache. Pour cela, sur les plates-formes o� GCC/GDB est
utilis�, vous devez compiler Apache+mod_ssl avec l'option
``<code>OPTIM="-g -ggdb3"</code>''. Sur les autres plates-formes,
l'option ``<code>OPTIM="-g"</code>'' est un minimum.
</li>
<li>D�marrez le serveur et essayez de reproduire le vidage m�moire.
A cet effet, vous pouvez utiliser une directive du style
``<code>CoreDumpDirectory /tmp</code>'' pour �tre s�r que le
fichier de vidage m�moire puisse bien �tre �crit. Vous devriez
obtenir un fichier <code>/tmp/core</code> ou
<code>/tmp/httpd.core</code>. Si ce n'est pas le cas, essayez de
lancer votre serveur sous un UID autre que root.
Pour des raisons de s�curit�, de nombreux
noyaux modernes de permettent pas � un processus de vider sa
m�moire une fois qu'il a accompli un <code>setuid()</code> (� moins
qu'il effectue un <code>exec()</code>) car des informations d'un
niveau privil�gi� pourraient �tre transmises en m�moire. Si
n�cessaire, vous pouvez ex�cuter <code>/chemin/vers/httpd -X</code>
manuellement afin de ne pas permettre � Apache de se cl�ner (fork).
</li>
<li>Analysez le vidage m�moire. Pour cela, ex�cutez
<code>gdb /path/to/httpd /tmp/httpd.core</code> ou une commande
similaire. Dans GDB, tout ce que vous avez � faire est d'entrer
<code>bt</code>, et voila, vous obtenez la backtrace. Pour les
d�bogueurs autres que GDB consulter le manuel correspondant.
</li>
</ol>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="/en/ssl/ssl_faq.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="/fr/ssl/ssl_faq.html" title="Fran�ais">&nbsp;fr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2009 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossaire</a> | <a href="/sitemap.html">Plan du site</a></p></div>
</body></html>