1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files

331 lines
12 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: bad50150f7e06228f48c4461fab52afe08a4d5e4 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="context.ssl" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" annotations="verify_info:false" role="stream_context_option">
<refnamediv>
<refname>Опции SSL-контекста</refname>
<refpurpose>Список опций SSL-контекста</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
Опции контекста для протоколов <literal>ssl://</literal> и <literal>tls://</literal>.
</para>
</refsect1>
<refsect1 role="options"><!-- {{{ -->
&reftitle.options;
<para>
<variablelist>
<varlistentry xml:id="context.ssl.peer-name">
<term>
<parameter>peer_name</parameter>
<type>string</type>
</term>
<listitem>
<para>
Имя узла. Если значение параметра не задали, имя подставляется
на основе имени хоста, который использовался при открытии потока.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.verify-peer">
<term>
<parameter>verify_peer</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Требовать проверки SSL-сертификата.
</para>
<para>
По умолчанию &true;.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.verify-peer-name">
<term>
<parameter>verify_peer_name</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Требовать проверки имени узла.
</para>
<para>
По умолчанию &true;.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.allow-self-signed">
<term>
<parameter>allow_self_signed</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Разрешить самоподписанные сертификаты. Требуется
опция <link linkend="context.ssl.verify-peer"><parameter>verify_peer</parameter></link>.
</para>
<para>
По умолчанию &false;
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.cafile">
<term>
<parameter>cafile</parameter>
<type>string</type>
</term>
<listitem>
<para>
Расположение файла центра сертификации в локальной файловой системе,
который следует использовать с опцией контекста <literal>verify_peer</literal>
для проверки подлинности удалённого узла.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.capath">
<term>
<parameter>capath</parameter>
<type>string</type>
</term>
<listitem>
<para>
Если опцию <literal>cafile</literal> не определили или функция не смогла найти сертификат,
выполняется поиск в директории, которую указали в опции <literal>capath</literal>.
Путь <literal>capath</literal> должен указывать на корректную директорию, которая содержит сертификаты, имена которых —
хеш от поля subject, указанного в сертификате.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.local-cert">
<term>
<parameter>local_cert</parameter>
<type>string</type>
</term>
<listitem>
<para>
Путь к локальному сертификату в файловой системе. Требуется файл, который закодировали в формате <acronym>PEM</acronym>,
который содержит ваш сертификат и закрытый ключ.
Файл дополнительно может содержать открытый ключ эмитента.
Закрытый ключ также может содержаться в отдельном файле, который задали опцией <literal>local_pk</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.local-pk">
<term>
<parameter>local_pk</parameter>
<type>string</type>
</term>
<listitem>
<para>
Путь к локальному файлу с приватным ключом в случае отдельных
файлов сертификата (<literal>local_cert</literal>) и приватного ключа.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.passphrase">
<term>
<parameter>passphrase</parameter>
<type>string</type>
</term>
<listitem>
<para>
Идентификационная фраза, с которой закодировали ваш файл <literal>local_cert</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.verify-depth">
<term>
<parameter>verify_depth</parameter>
<type>int</type>
</term>
<listitem>
<para>
Прервать, если цепочка сертификата слишком длинная.
</para>
<para>
По умолчанию проверка отсутствует.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.ciphers">
<term>
<parameter>ciphers</parameter>
<type>string</type>
</term>
<listitem>
<para>
Устанавливает список доступных алгоритмов шифрования. Формат этой строки описывает
страница <link xlink:href="&url.openssl.ciphers;">шифры(1)</link>.
</para>
<para>
По умолчанию принимает значение <literal>DEFAULT</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.capture-peer-cert">
<term>
<parameter>capture_peer_cert</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Если для опции установили значение &true;, будет создана опция контекста <literal>peer_certificate</literal>,
которая содержит сертификат удалённого узла.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.capture-peer-cert-chain">
<term>
<parameter>capture_peer_cert_chain</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Если для опции установили значение &true;, будет создана опция контекста <literal>peer_certificate_chain</literal>,
которая содержит цепочку сертификатов.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.sni-enabled">
<term>
<parameter>SNI_enabled</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Если для опции установили значение &true;, включится индикация имени сервера. Включение SNI
разрешает использовать разные сертификаты на одном IP-адресе.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.disable-compression">
<term>
<parameter>disable_compression</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Отключает TLS-сжатие, что помогает предотвратить атаки типа CRIME.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.peer-fingerprint">
<term>
<parameter>peer_fingerprint</parameter>
<type>string</type> | <type>array</type>
</term>
<listitem>
<para>
Прерваться, если дайджест сообщения не совпадает с указанным хешем.
</para>
<para>
Если указали строку (<type>string</type>), её длина определяет, какой
алгоритм хеширования будет использоваться: «md5» (32) или «sha1» (40).
</para>
<para>
Если указали массив (<type>array</type>), ключи определяют
алгоритм хеширования, а каждое соответствующее значение представляет собой
требуемым хешем.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.security-level">
<term>
<parameter>security_level</parameter>
<type>int</type>
</term>
<listitem>
<para>
Устанавливает уровень безопасности. Если не указали, используется стандартный уровень безопасности, указанный в библиотеке.
Уровни безопасности описывает страница
<link xlink:href="&url.openssl.security-level;">SSL_CTX_get_security_level(3)</link>.
</para>
<para>
Доступна с PHP 7.2.0 и OpenSSL 1.1.0.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1><!-- }}} -->
<refsect1 role="changelog"><!-- {{{ -->
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>7.2.0</entry>
<entry>
Добавили опцию <parameter>security_level</parameter>. Требуется OpenSSL &gt;= 1.1.0.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1><!-- }}} -->
<refsect1 role="notes">
&reftitle.notes;
<note>
<simpara>
Поскольку <literal>ssl://</literal> — нижележащий транспортный протокол для обёрток
<link linkend="wrappers.http"><literal>https://</literal></link>
и <link linkend="wrappers.ftp"><literal>ftps://</literal></link>,
любые опции контекста, которые применяются к транспорту <literal>ssl://</literal>, будут также применяться
к обёрткам <literal>https://</literal> и <literal>ftps://</literal>.
</simpara>
</note>
<note>
<simpara>
Чтобы указание имени сервера (SNI, Server Name Indication) было доступно, требуется
скомпилировать PHP с OpenSSL 0.9.8j или более поздней. Чтобы определить,
поддерживается ли SNI, указывают константу
<constant>OPENSSL_TLSEXT_SERVER_NAME</constant>.
</simpara>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><xref linkend="context.socket" /></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->