<?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 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'openssl.installation.php',
    1 => 'Instala&ccedil;&atilde;o',
    2 => 'Instala&ccedil;&atilde;o',
  ),
  'up' => 
  array (
    0 => 'openssl.setup.php',
    1 => 'Instala&ccedil;&atilde;o/Configura&ccedil;&atilde;o',
  ),
  'prev' => 
  array (
    0 => 'openssl.requirements.php',
    1 => 'Depend&ecirc;ncias',
  ),
  'next' => 
  array (
    0 => 'openssl.configuration.php',
    1 => 'Configura&ccedil;&otilde;es em Execu&ccedil;&atilde;o',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    '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">Instalação</h2>
 <p class="para">
  Para usar o suporte OpenSSL do PHP, o PHP deve ser compilado com <strong class="option configure">--with-openssl</strong>.
 </p>
 <p class="para">
  A biblioteca OpenSSL também tem requisitos adicionais para operação normal em
  tempo de execução. Mais notavelmente, o OpenSSL requer acesso a um gerador de
  números aleatórios ou pseudoaleatórios; na maioria das plataformas Unix e similares (incluindo Linux),
  isso significa que ele deve ter acesso a um dispositivo <code class="literal">/dev/urandom</code> ou
  <code class="literal">/dev/random</code>.
 </p>
 <p class="para">
  A opção <strong class="option configure">--with-system-ciphers</strong> do comando &quot;configure&quot;
  está disponível, o que faz com que o PHP use a lista de cifras do sistema em vez de um padrão fixo codificado.
 </p>
 <blockquote class="note"><p><strong class="note">Nota</strong>: 
  <strong>Nota para usuários do Win32</strong><br />
  <p class="para">
   Para que esta extensão funcione, existem arquivos
<abbr title="Dynamic Link Library">DLL</abbr> que devem estar disponíveis no
<var class="envar">PATH</var> do sistema Windows. Para saber como fazer isso, veja a
<abbr title="Frequently Asked Questions">FAQ</abbr> intitulada &quot;<a href="faq.installation.php#faq.installation.addtopath" class="link">Como eu adiciono o meu diretório PHP ao PATH
do Windows</a>&quot;. Embora copiar arquivos DLL
da pasta do PHP para o diretório system do Windows também funcione
(porque o diretório system está, por padrão, no <var class="envar">PATH</var> do sistema),
isso não é recomendado.
<em>Esta extensão requer que os seguintes arquivos estejam no
<var class="envar">PATH</var>:</em> 
   <var class="filename">libeay32.dll</var>,
   ou, a partir do OpenSSL 1.1, <var class="filename">libcrypto-*.dll</var>
  </p>
  <p class="para">
   Além disso, se houver planos de usar as funções de geração de chaves e
   assinatura de certificados, será necessário instalar um arquivo
   <var class="filename">openssl.cnf</var> válido em seu sistema.
   Existe um arquivo de configuração de exemplo incluído
   nas distribuições binárias do PHP para Win32, no diretório
   <var class="filename">extras/ssl</var>.
  </p>
  <p class="para">
   O PHP pesquisará o <var class="filename">openssl.cnf</var> usando a
   seguinte lógica:
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">a variável de ambiente <code class="literal">OPENSSL_CONF</code>, se
     definida, será usada como o caminho (incluindo o nome do arquivo) do arquivo
     de configuração.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">a variável de ambiente <code class="literal">SSLEAY_CONF</code>, se
      definida, será usada como o caminho (incluindo o nome do arquivo) do arquivo
      de configuração.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">Será assumido que o arquivo <var class="filename">openssl.cnf</var> deve ser
     encontrado na área padrão de certificados, conforme configurado no momento em que
     a DLL do openssl foi compilada. Isso geralmente significa que o nome de arquivo padrão
     é <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,
     antes do PHP 7.4.0, <var class="filename">C:\usr\local\ssl\openssl.cnf</var>.
     </span>
    </li>
   </ul>
  </p>
  <span class="simpara">
   É necessário escolher de o
   arquivo de configuração deve ser instalado no caminho padrão ou
   em outro lugar e usar variáveis de ambiente
   (possivelmente uma configuração para cada host virtual) para localizar o arquivo de configuração.
   Observe que é possível substituir o caminho padrão do script usando
   as opções no parâmetro <code class="parameter">options</code> das funções que exigem um
   arquivo de configuração.
  </span>
  <div class="caution"><strong class="caution">Cuidado</strong>
   <p class="simpara">
    Deve ser assegurado que usuários não privilegiados não tenham permissão para modificar <var class="filename">openssl.cnf</var>.
   </p>
  </div>
  <span class="simpara">
   A partir do OpenSSL 3.0.0, que é usado no Windows por padrão a partir do PHP 8.2.0, vários
   algoritmos foram considerados legados. Esses algoritmos comumente caíram em desuso,
   foram considerados inseguros pela comunidade criptográfica ou algo semelhante.
   Esses algoritmos ainda estão disponíveis através do provedor legado
   (<var class="filename">extras/ssl/legacy.dll</var>); seu uso é descrito na seção sobre
   <a href="https://docs.openssl.org/master/man5/config/#Provider-Configuration" class="link external">&raquo;&nbsp;configuração do provedor</a>
   no manual do OpenSSL.
  </span>
 </p></blockquote>

 <div class="simplesect">
  <h3 class="title">Registro de Alterações</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Versão</th>
       <th>Descrição</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>7.4.0</td>
       <td>
        A opção <strong class="option configure">--with-openssl[=DIR]</strong> não
        aceita mais um argumento de diretório, em favor da configuração da variável pkg-config
        <var class="envar">PKG_CONFIG_PATH</var> para a localização do OpenSSL ou
        especificando as variáveis <var class="envar">OPENSSL_LIBS</var> e
        <var class="envar">OPENSSL_CFLAGS</var>.
       </td>
      </tr>

      <tr>
       <td>7.4.0</td>
       <td>
        O caminho de configuração padrão do OpenSSL foi alterado de <var class="filename">C:\usr\local\ssl</var>
        para <var class="filename">C:\Program Files\Common Files\SSL</var> e
        <var class="filename">C:\Program Files (x86)\Common Files\SSL</var>, respectivamente.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>

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