Files
2025-10-06 16:46:57 -03:00

337 lines
9.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8bc832a464e33122e8129f5a623bd845b69fa7e0 Maintainer: fabioluciano Status: ready --><!-- CREDITS: fabioluciano,lhsazevedo,abdalazard,leonardolara -->
<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>Opções de contexto de SSL</refname>
<refpurpose>Lista de opções de contexto de SSL</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
Opções de contexto dos transportadores <literal>ssl://</literal> e
<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>
Nome do peer a ser utilizado. Se este valor não for definido, o nome será adivinhado
com base no nome do servidor utilizado na abertura do fluxo.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.verify-peer">
<term>
<parameter>verify_peer</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Exige a verificação do certificado SSL utilizado.
</para>
<para>
&true; como padrão.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.verify-peer-name">
<term>
<parameter>verify_peer_name</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Exige a verificação do nome do peer.
</para>
<para>
&true; como padrão.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.allow-self-signed">
<term>
<parameter>allow_self_signed</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Permite certificados auto assinados. Precisa do parâmetro
<link linkend="context.ssl.verify-peer"><parameter>verify_peer</parameter></link>.
</para>
<para>
&false; como padrão.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.cafile">
<term>
<parameter>cafile</parameter>
<type>string</type>
</term>
<listitem>
<para>
Localização do arquivo de Autoridade Certificadora no sistema de arquivos
que deve ser usado pela opção de contexto <literal>verify_peer</literal>
para autenticar a identidade do peer remoto.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.capath">
<term>
<parameter>capath</parameter>
<type>string</type>
</term>
<listitem>
<para>
Se a opção <literal>cafile</literal> não for especificada, ou o certificado
não for encontrado, o diretório apontado pela opção <literal>capath</literal>
será utilizado na busca de um certificado adequado. A opção <literal>capath</literal>
deve ser um diretório de certificado com hash correto.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.local-cert">
<term>
<parameter>local_cert</parameter>
<type>string</type>
</term>
<listitem>
<para>
Caminho para o certificado local no sistema de arquivos. Deve ser um
arquivo <acronym>PEM</acronym> codificado que contém seu certificado e chave privada.
Pode opcionalmente conter a cadeia de certificados dos emitentes.
A chave privada também pode estar em um arquivo separado especificado
pela opção <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>
Caminho para a chave privada local no sistema de arquivos, em caso de se usar
arquivos separados para o certificado (<literal>local_cert</literal>) e para a chave privada.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.passphrase">
<term>
<parameter>passphrase</parameter>
<type>string</type>
</term>
<listitem>
<para>
Senha usada para codificar o arquivo
<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>
Abortará se a cadeia de certificados for muito profunda.
</para>
<para>
Não verificar por padrão.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.ciphers">
<term>
<parameter>ciphers</parameter>
<type>string</type>
</term>
<listitem>
<para>
Define a lista de cifras disponíveis. O formato desta string é descrito
em <link xlink:href="&url.openssl.ciphers;">ciphers(1)</link>.
</para>
<para>
<literal>DEFAULT</literal> como padrão.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.capture-peer-cert">
<term>
<parameter>capture_peer_cert</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Se definida como &true;, a opção de contexto <literal>peer_certificate</literal>
será criada contendo o certificado peer.
</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>
Se definida como &true;, a opção de contexto <literal>peer_certificate_chain</literal>
será criada contendo a cadeia de certificados.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.sni-enabled">
<term>
<parameter>SNI_enabled</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Se definida como &true;, o indicador do nome do servidor será habilitado. Habilitar a SNI
permite múltiplos certificados no mesmo endereço IP.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.disable-compression">
<term>
<parameter>disable_compression</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Se definida, desabilita a compressão TLS. Pode ajudar a mitigar o vetor de
ataque 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>
Abortará quando o certificado resumido remoto não corresponder a um hash
especificado.
</para>
<para>
Quando uma <type>string</type> for utilizada, o tamanho determinará qual algoritmo de hash será
aplicado, "md5" (32) ou "sha1" (40).
</para>
<para>
Quando um <type>array</type> for utilizado, as chaves indicarão o nome do hash
e os valores correspondentes ao resumo esperado.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="context.ssl.security-level">
<term>
<parameter>security_level</parameter>
<type>int</type>
</term>
<listitem>
<para>
Define o nível de segurança. Se não especificado, o padrão da biblioteca é usado.
Os níveis de segurança são descritos em
<link xlink:href="&url.openssl.security-level;">SSL_CTX_get_security_level(3)</link>.
</para>
<para>
Disponível a partir do PHP 7.2.0 e 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>
Adicionado o parâmetro <parameter>security_level</parameter>. Requer OpenSSL &gt;= 1.1.0.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1><!-- }}} -->
<refsect1 role="notes">
&reftitle.notes;
<note>
<simpara>
Por <literal>ssl://</literal> ser um transporte básico para os empacotadores
<link linkend="wrappers.http"><literal>https://</literal></link> e
<link linkend="wrappers.ftp"><literal>ftps://</literal></link>,
quaisquer opções de contexto aplicáveis a <literal>ssl://</literal>, também se aplicam a
<literal>https://</literal> e <literal>ftps://</literal>.
</simpara>
</note>
<note>
<simpara>
Para SNI (Server Name Indication - Indicador de Nome de Servidor) estar disponível, o PHP deve ser compilado
com o OpenSSL 0.9.8j ou superior. Utilize a constante
<constant>OPENSSL_TLSEXT_SERVER_NAME</constant> para determinar o suporte ao
SNI.
</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
-->