<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/openssl.setup.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'openssl.installation.php',
    1 => 'Installation',
    2 => 'Installation',
  ),
  'up' => 
  array (
    0 => 'openssl.setup.php',
    1 => 'Installation/Configuration',
  ),
  'prev' => 
  array (
    0 => 'openssl.requirements.php',
    1 => 'Pr&eacute;-requis',
  ),
  'next' => 
  array (
    0 => 'openssl.configuration.php',
    1 => 'Configuration &agrave; l\'ex&eacute;cution',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/openssl/configure.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="openssl.installation" class="section">
 <h2 class="title">Installation</h2>
 <p class="para">
  Pour utiliser le support OpenSSL de PHP, il faut aussi compiler PHP avec l&#039;option
  de configuration <strong class="option configure">--with-openssl</strong>.
 </p>
 <p class="para">
  La bibliothèque OpenSSL possède aussi des dépendances à l&#039;exécution. Par exemple,
  OpenSSL a besoin d&#039;accéder à un générateur de nombres pseudo-aléatoires; sur la
  plupart des plateformes Unix (incluant donc Linux), elle doit avoir accès au
  périphérique <code class="literal">/dev/urandom</code> ou <code class="literal">/dev/random</code>.
 </p>
 <p class="para">
  L&#039;option de configuration
  <strong class="option configure">--with-system-ciphers</strong> est disponible
  qui fait que PHP utilise la liste de chiffrement système au lieu des valeurs
  par défaut codées en dur.
 </p>
 <blockquote class="note"><p><strong class="note">Note</strong>: 
  <strong>Note aux utilisateurs Win32</strong><br />
  <p class="para">
   Afin de faire fonctionner cette extension, quelques bibliothèques
<abbr title="Dynamic Link Library">DLL</abbr> doivent être disponibles via le
<var class="envar">PATH</var> du système Windows. Lisez la
<abbr>F.A.Q</abbr> intitulée
&quot;<a href="faq.installation.php#faq.installation.addtopath" class="link">Comment ajouter mon dossier
PHP à mon PATH Windows</a>&quot; pour plus d&#039;informations. Le fait de copier les bibliothèques DLL depuis le
dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le
<var class="envar">PATH</var> système), mais cette méthode n&#039;est pas recommandée.
<em>Cette extension nécessite que les fichiers suivants se trouvent dans le
<var class="envar">PATH</var> :</em> 
   <var class="filename">libeay32.dll</var>,
   ou, à partir d&#039;OpenSSL 1.1, <var class="filename">libcrypto-*.dll</var>
  </p>
  <p class="para">
   De plus, si on a prévu d&#039;utiliser les fonctions relatives à la génération
   de clés et aux certificats, il faut installer un fichier
   <var class="filename">openssl.cnf</var> valide sur le système.
   Un fichier de configuration de base est inclus dans les distributions de PHP
   pour win32 dans le dossier <var class="filename">extras/ssl</var>.
  </p>
  <p class="para">
   PHP va rechercher le fichier <var class="filename">openssl.cnf</var> suivant la
   tactique suivante : 
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      La variable d&#039;environnement <var class="envar">OPENSSL_CONF</var>, si elle est 
      définie, sera utilisée comme chemin (comprenant le fichier) vers le 
      fichier de configuration.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      La variable d&#039;environnement <var class="envar">SSLEAY_CONF</var>, si elle est 
      définie, sera utilisée comme chemin (comprenant le fichier) vers le 
      fichier de configuration.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      Le fichier <var class="filename">openssl.cnf</var> sera supposé se trouver dans
      le dossier des certificats, tel que configuré lors de la compilation
      de la bibliothèque openssl. Cela signifie généralement <var class="filename">C:\Program Files\Common Files\SSL\openssl.cnf</var> (x64)
      ou <var class="filename">C:\Program Files (x86)\Common Files\SSL\openssl.cnf</var> (x86), ou,
      avant PHP 7.4.0, 
      <var class="filename">c:\usr\local\ssl\openssl.cnf</var>.
     </span>
    </li>
   </ul>
  </p>
  <span class="simpara">
   Dans l&#039;installation, il faudra décider si on va installer le fichier
   de configuration dans le chemin par défaut ou si on va
   le faire ailleurs et configurer une variable d&#039;environnement (possiblement
   par site virtuel). À noter qu&#039;il est possible de remplacer le chemin par
   défaut en utilisant le paramètre <code class="parameter">options</code> des fonctions
   qui requièrent un fichier de configuration.
  </span>
   <div class="caution"><strong class="caution">Attention</strong>
   <p class="simpara">
    Veiller à ce que les utilisateurs non privilégiés ne soient pas autorisés à 
    modifier <var class="filename">openssl.cnf</var>.
   </p>
  </div>
  <span class="simpara">
   À partir d&#039;OpenSSL 3.0.0, qui est utilisé par défaut sur Windows à partir de PHP 8.2.0, plusieurs
   algorithmes ont été jugés obsolètes. Ces algorithmes sont souvent tombés en désuétude,
   ont été considérés comme non sécurisés par la communauté cryptographique, ou quelque chose de similaire.
   Ces algorithmes sont encore disponibles via le fournisseur d&#039;algorithmes legacy
   (<var class="filename">extras/ssl/legacy.dll</var>) ; son utilisation est décrite dans la
   section <a href="https://docs.openssl.org/master/man5/config/#Provider-Configuration" class="link external">&raquo;&nbsp;configuration du fournisseur</a>
   du manuel OpenSSL.
  </span>
 </p></blockquote>

 <div class="simplesect">
  <h3 class="title">Historique</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Version</th>
       <th>Description</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>7.4.0</td>
       <td>
        L&#039;option <strong class="option configure">--with-openssl[=DIR]</strong> n&#039;accepte plus
        d&#039;argument de répertoire en faveur du réglage de la variable pkg-config
        <var class="envar">PKG_CONFIG_PATH</var> vers l&#039;emplacement d&#039;OpenSSL, ou en spécifiant les variables <var class="envar">OPENSSL_LIBS</var> et
        <var class="envar">OPENSSL_CFLAGS</var>.
       </td>
       </tr>

       <tr>
       <td>7.4.0</td>
       <td>
        Le chemin de configuration par défaut d&#039;OpenSSL a été modifié de <var class="filename">C:\usr\local\ssl</var>
        à <var class="filename">C:\Program Files\Common Files\SSL</var> et
        <var class="filename">C:\Program Files (x86)\Common Files\SSL</var>, respectivement.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>
 
</div><?php manual_footer($setup); ?>