<?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 => 'de',
  ),
  'this' => 
  array (
    0 => 'context.ssl.php',
    1 => 'SSL-Kontext-Optionen',
    2 => 'Liste der SSL-Kontext-Optionen',
  ),
  'up' => 
  array (
    0 => 'context.php',
    1 => 'Kontextoptionen und -parameter',
  ),
  'prev' => 
  array (
    0 => 'context.ftp.php',
    1 => 'FTP-Kontextoptionen',
  ),
  'next' => 
  array (
    0 => 'context.phar.php',
    1 => 'Phar Kontextoptionen',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    '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">SSL-Kontext-Optionen</h1>
  <p class="refpurpose"><span class="refname">SSL-Kontext-Optionen</span> &mdash; <span class="dc-title">Liste der SSL-Kontext-Optionen</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-context.ssl-description">
  <h3 class="title">Beschreibung</h3>
  <p class="para">
   Kontextoptionen für die <code class="literal">ssl://</code> und <code class="literal">tls://</code>
   Übermittlung.
  </p>
 </div>


 <div class="refsect1 options" id="refsect1-context.ssl-options">
  <h3 class="title">Optionen</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">
      Zu verwendender Peer-Name. Wird dieser Wert nicht gesetzt, so wird der
      Name anhand des Hostnamen erraten, sobald der Stream geöffnet wird.
     </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">
       Die Überprüfung des verwendeten SSL-Zertifikats ist erforderlich.
      </p>
      <p class="para">
       Standardmäßig <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">
       Erfordere die Verifikation des Peernamens.
      </p>
      <p class="para">
       Standardmäßig <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">
       Selbst signifizierte Zerifikate erlauben. Setzt
       <a href="context.ssl.php#context.ssl.verify-peer" class="link"><code class="parameter">verify_peer</code></a>
       voraus.
      </p>
      <p class="para">
       Standardmäßig <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">
       Speicherort der Zertifizierungsstellendatei auf dem lokalen
       Dateisystem, welche im Zusammenhang mit der <code class="literal">verify_peer</code>
       Option verwendet werden soll, um die Identität der Gegenstelle zu
       authentifizieren.
      </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">
       Falls <code class="literal">cafile</code> nicht angegeben wurde, oder dort das
       Zertifikat nicht gefunden wurde, so wird das durch
       <code class="literal">capath</code> angegebene Verzeichnis nach einem passenden
       Zertifikat durchsucht. <code class="literal">capath</code> muss ein korrekt
       gehashtes Zertifikatsverzeichnis sein.
      </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">
       Pfad zur lokalen Zertifikatsdatei im Dateisystem. Dies muss eine
       im <abbr title="Privacy-Enhanced Mail">PEM</abbr>-Format gespeicherte Datei sein, welche das
       Zertifikat und den privaten Schlüssel enthält. Optional kann dies die
       Kette an Herausgeberzertifikaten enthalten.
       Der private Schlüssel kann ebenfalls in einer eigenen Datei enthalten
       sein, die durch <code class="literal">local_pk</code> angegeben wird.
      </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">
       Pfad zu einer lokalen Datei, die den privaten Schlüssel enthält, falls es
       unterschiedliche Dateien für Zertifikate (<code class="literal">local_cert</code>)
       und private Schlüssel gibt.
      </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">
       Passphrase mit der die <code class="literal">local_cert</code>-Datei
       gespeichert wurde.
      </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">
       Abbruch, wenn die Zertifikatskette zu tief ist.
      </p>
      <p class="para">
       Standardmäßig keine Prüfung.
      </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">
       Setzt die Liste der verfügbaren Verschlüsselungsverfahrenn. Das Format
       dieser Zeichenkette wird in
       <a href="https://docs.openssl.org/master/man1/openssl-ciphers/" class="link external">&raquo;&nbsp;ciphers(1)</a> beschrieben.
      </p>
      <p class="para">
       Standardmäßig auf <code class="literal">DEFAULT</code> gesetzt.
      </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">
       Falls dies auf <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> gesetzt ist, so wird die Kontextoption
       <code class="literal">peer_certificate</code> angelegt, welche das Zertifikat der
       Gegenstelle enthält.
      </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">
       Falls dies auf <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> gesetzt ist, so wird die Kontextoption
       <code class="literal">peer_certificate_chain</code> angelegt, welche die
       Zertifikatskette enthält.
      </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">
       Falls dies auf <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> gesetzt wird, so wird Server Name Indication
       eingeschaltet. Die Verwendung von SNI erlaubt die Benutzung von
       mehreren Zertifikaten unter der gleichen IP-Adresse.
      </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">
       Wenn dies gesetzt wird, so wird TLS-Komprimierung ausgeschaltet. Dies kann
       den CRIME-Angriffsvektor entschärfen.
      </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">
       Beendet die Verbindung, wenn der Fingerabdruck des entfernten Zertifikats nicht
       dem angegebenen Hashwert entspricht.
      </p>
      <p class="para">
       Wird ein <span class="type"><a href="language.types.string.php" class="type String">String</a></span> verwendet, so wird der zu verwendende Hashalgorithmus anhand
       der Länge der Zeichenkette ermittelt, entweder &quot;md5&quot; (32) oder &quot;sha1&quot; (40).
      </p>
      <p class="para">
       Wird ein <span class="type"><a href="language.types.array.php" class="type Array">Array</a></span> verwendet, so geben die Schlüsselnamen den Namen des
       Hashalgorithmus an, und jeder zugehörige Wert entspricht dem erwarteten Fingerabdruck.
      </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">
       Legt die Sicherheitsstufe fest. Falls nicht angegeben, wird die Standard-Sicherheitsstufe der Bibliothek verwendet.
       Die Sicherheitsstufen sind in
       <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>
       beschrieben.
      </p>
      <p class="para">
       Verfügbar von PHP 7.2.0 und OpenSSL 1.1.0 an.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-context.ssl-changelog">
  <h3 class="title">Changelog</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Version</th>
       <th>Beschreibung</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>7.2.0</td>
       <td>
        <code class="parameter">security_level</code> hinzugefügt. Erfordert OpenSSL &gt;= 1.1.0.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-context.ssl-notes">
  <h3 class="title">Anmerkungen</h3>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <span class="simpara">
    Weil <code class="literal">ssl://</code> die den Wrappern
    <a href="wrappers.http.php" class="link"><code class="literal">https://</code></a> und
    <a href="wrappers.ftp.php" class="link"><code class="literal">ftps://</code></a> zugrunde
    liegende Übertragungsschicht ist, gelten alle Optionen, die für
    <code class="literal">ssl://</code> angewendet werden, ebenfalls für
    <code class="literal">https://</code> und <code class="literal">ftps://</code>.
   </span>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <span class="simpara">
    Damit SNI (Server Name Indication) verfügbar ist muss PHP mit OpenSSL 0.9.8j
    oder neuer kompiliert sein. Die Konstante
    <strong><code><a href="openssl.constsni.php#constant.openssl-tlsext-server-name">OPENSSL_TLSEXT_SERVER_NAME</a></code></strong> kann zur Prüfung, ob SNI
    verfügbar ist, herangezogen werden.
   </span>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-context.ssl-seealso">
  <h3 class="title">Siehe auch</h3>
  <p class="para">
   <ul class="simplelist">
    <li><a href="context.socket.php" class="xref">Socket-Kontextoptionen</a></li>
   </ul>
  </p>
 </div>


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