<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/context.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'context.ssl.php',
    1 => 'Options de contexte SSL',
    2 => 'Liste des options de contexte SSL',
  ),
  'up' => 
  array (
    0 => 'context.php',
    1 => 'Options et param&egrave;tres de contexte',
  ),
  'prev' => 
  array (
    0 => 'context.ftp.php',
    1 => 'Options de contexte FTP',
  ),
  'next' => 
  array (
    0 => 'context.phar.php',
    1 => 'Les options du contexte Phar',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'language/context/ssl.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="context.ssl" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">Options de contexte SSL</h1>
  <p class="refpurpose"><span class="refname">Options de contexte SSL</span> &mdash; <span class="dc-title">Liste des options de contexte SSL</span></p>

 </div>
 
 <div class="refsect1 description" id="refsect1-context.ssl-description">
  <h3 class="title">Description</h3>
  <p class="para">
   Options de contexte pour les protocoles <code class="literal">ssl://</code>
   et <code class="literal">tls://</code>.
  </p>
 </div>

 
 <div class="refsect1 options" id="refsect1-context.ssl-options">
  <h3 class="title">Options</h3>
  <p class="para">
   <dl>
    
     <dt id="context.ssl.peer-name">
      <code class="parameter">peer_name</code>
      <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
     </dt>
     <dd>
      <p class="para">
       Nom du pair à utiliser. Si cette valeur n&#039;est pas définie, alors le
       nom sera deviné en se basant sur le nom d&#039;hôte utilisé lors de
       l&#039;ouverture du flux.
      </p>
     </dd>
    
    
     <dt id="context.ssl.verify-peer">
      <code class="parameter">verify_peer</code>
      <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
     </dt>
     <dd>
      <p class="para">
       Nécessite une vérification du certificat SSL utilisé.
      </p>
      <p class="para">
       Par défaut, vaut <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>.
      </p>
     </dd>
    
    
     <dt id="context.ssl.verify-peer-name">
      <code class="parameter">verify_peer_name</code>
      <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
     </dt>
     <dd>
      <p class="para">
       Nécessite la vérification du nom du pair.
      </p>
      <p class="para">
       Par défaut, vaut <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>.
      </p>
     </dd>
    
    
     <dt id="context.ssl.allow-self-signed">
      <code class="parameter">allow_self_signed</code>
      <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
     </dt>
     <dd>
      <p class="para">
       Permet les certificats autosignés. Requiert le
       paramètre <a href="context.ssl.php#context.ssl.verify-peer" class="link"><code class="parameter">verify_peer</code></a>.
      </p>
      <p class="para">
       Par défaut, vaut <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>
      </p>
     </dd>
    
    
     <dt id="context.ssl.cafile">
      <code class="parameter">cafile</code>
      <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
     </dt>
     <dd>
      <p class="para">
       Endroit où se trouve le fichier de l&#039;autorité du certificat
       sur le système de fichiers local et qui devra être utilisé
       avec l&#039;option de contexte <code class="literal">verify_peer</code>
       pour identifier le pair distant.
      </p>
     </dd>
    
    
     <dt id="context.ssl.capath">
      <code class="parameter">capath</code>
      <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
     </dt>
     <dd>
      <p class="para">
       Si <code class="literal">cafile</code> n&#039;est pas spécifié ou si le certificat
       n&#039;a pas été trouvé, une recherche dans le dossier pointé par
       <code class="literal">capath</code> sera effectuée afin d&#039;y trouver un certificat
       valide. <code class="literal">capath</code> doit être un dossier de certificats correctement hachés.
      </p>
     </dd>
    
    
     <dt id="context.ssl.local-cert">
      <code class="parameter">local_cert</code>
      <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
     </dt>
     <dd>
      <p class="para">
       Chemin vers le certificat local, sur le système de fichiers.
       Ce doit être un fichier encodé <abbr title="Privacy-Enhanced Mail">PEM</abbr> qui contient le certificat
       et la clé privée. Il peut, optionnellement, contenir la
       chaîne de certification de l&#039;émetteur.
       La clé privée peut également être contenue dans un fichier distinct 
       spécifié par <code class="literal">local_pk</code>.
      </p>
     </dd>
    
    
     <dt id="context.ssl.local-pk">
      <code class="parameter">local_pk</code>
      <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
     </dt>
     <dd>
      <p class="para">
       Chemin d&#039;accès au fichier de clé privée locale sur le système de 
       fichiers dans le cas de fichiers distincts pour le certificat 
       (<code class="literal">local_cert</code>) et la clé privée.
      </p>
     </dd>
    
    
     <dt id="context.ssl.passphrase">
      <code class="parameter">passphrase</code>
      <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
     </dt>
     <dd>
      <p class="para">
       La phrase passe avec laquelle le fichier
       <code class="literal">local_cert</code> a été encodé.
      </p>
     </dd>
    
    
     <dt id="context.ssl.verify-depth">
      <code class="parameter">verify_depth</code>
      <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
     </dt>
     <dd>
      <p class="para">
       Échoue si la chaîne de certification est trop profonde.
      </p>
      <p class="para">
       Par défaut, aucune vérification.
      </p>
     </dd>
    
    
     <dt id="context.ssl.ciphers">
      <code class="parameter">ciphers</code>
      <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
     </dt>
     <dd>
      <p class="para">
       Définit la liste des chiffrements. Le format de la chaîne est décrit
       sur la page <a href="https://docs.openssl.org/master/man1/openssl-ciphers/" class="link external">&raquo;&nbsp;ciphers(1)</a>.
      </p>
      <p class="para">
       Par défaut, vaut <code class="literal">DEFAULT</code>.
      </p>
     </dd>
    
    
     <dt id="context.ssl.capture-peer-cert">
      <code class="parameter">capture_peer_cert</code>
      <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
     </dt>
     <dd>
      <p class="para">
       Si défini à <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, une option de contexte <code class="literal">peer_certificate</code>
       sera créée, contenant le certificat du pair.
      </p>
     </dd>
    
    
     <dt id="context.ssl.capture-peer-cert-chain">
      <code class="parameter">capture_peer_cert_chain</code>
      <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
     </dt>
     <dd>
      <p class="para">
       Si défini à <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, une option de contexte <code class="literal">peer_certificate_chain</code>
       sera créée, contenant la chaîne de certification.
      </p>
     </dd>
    
    
     <dt id="context.ssl.sni-enabled">
      <code class="parameter">SNI_enabled</code>
      <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
     </dt>
     <dd>
      <p class="para">
       Si vaut <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, l&#039;indication sur le nom du serveur sera activée.
       Le fait d&#039;activer SNI permet d&#039;utiliser plusieurs certificats
       sur la même adresse IP.
      </p>
     </dd>
    
    
     <dt id="context.ssl.disable-compression">
      <code class="parameter">disable_compression</code>
      <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
     </dt>
     <dd>
      <p class="para">
       Si défini, la compression TLS sera désactivée.
       Cela peut aider à atténuer le vecteur d&#039;attaque CRIME.
      </p>
     </dd>
    
    
     <dt id="context.ssl.peer-fingerprint">
      <code class="parameter">peer_fingerprint</code>
      <span class="type"><a href="language.types.string.php" class="type string">string</a></span> | <span class="type"><a href="language.types.array.php" class="type array">array</a></span>
     </dt>
     <dd>
      <p class="para">
       Interrompt la connexion lorsque le condensé du certificat distant ne correspond pas au hachage spécifié.
      </p>
      <p class="para">
       Lorsqu&#039;une <a href="language.types.string.php" class="link">chaîne de caractères</a> est utilisée, la longueur va déterminer l&#039;algorithme
       de hachage utilisé, soit &quot;md5&quot; (32), soit &quot;sha1&quot; (40).
      </p>
      <p class="para">
       Lorsqu&#039;un <a href="language.types.array.php" class="link">tableau</a> est utilisé, la clé indique le nom de l&#039;algorithme de
       hachage, et chaque valeur correspondante représente le digest attendu.
      </p>
     </dd>
    
    
     <dt id="context.ssl.security-level">
      <code class="parameter">security_level</code>
      <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
     </dt>
     <dd>
      <p class="para">
       Définit le niveau de sécurité. Si non spécifié, le niveau de sécurité par
       défaut de la bibliothèque est utilisé.
       Les niveaux de sécurité sont décrits dans 
       <a href="https://docs.openssl.org/master/man3/SSL_CTX_set_security_level/" class="link external">&raquo;&nbsp;SSL_CTX_get_security_level(3)</a>.
      </p>
      <p class="para">
       Disponible à partir de PHP 7.2.0 et OpenSSL 1.1.0.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>

 
 <div class="refsect1 changelog" id="refsect1-context.ssl-changelog">
  <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.2.0</td>
       <td>
        Ajout de <code class="parameter">security_level</code>. Requiert OpenSSL &gt;= 1.1.0.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>

 
 <div class="refsect1 notes" id="refsect1-context.ssl-notes">
  <h3 class="title">Notes</h3>
  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <span class="simpara">
    Vu que <code class="literal">ssl://</code> est un protocole sous-jacent pour
    les enveloppes <a href="wrappers.http.php" class="link"><code class="literal">https://</code></a> et
    <a href="wrappers.ftp.php" class="link"><code class="literal">ftps://</code></a>,
    toutes les options de contexte appliquées à <code class="literal">ssl://</code>
    seront également appliquées à <code class="literal">https://</code> et <code class="literal">ftps://</code>.
   </span>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <span class="simpara">
    Afin que SNI (Server Name Indication) soit disponible, PHP doit
    être compilé avec OpenSSL 0.9.8j ou supérieur. La
    constante <strong><code><a href="openssl.constsni.php#constant.openssl-tlsext-server-name">OPENSSL_TLSEXT_SERVER_NAME</a></code></strong> permet de
    déterminer si SNI est supporté ou non.
   </span>
  </p></blockquote>
 </div>

 
 <div class="refsect1 seealso" id="refsect1-context.ssl-seealso">
  <h3 class="title">Voir aussi</h3>
  <p class="para">
   <ul class="simplelist">
    <li><a href="context.socket.php" class="xref">Options de contexte des sockets</a></li>
   </ul>
  </p>
 </div>

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