blob: 17a321eaf317425401b10ecea0721d001a75c30d [file]
<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="es"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>mod_ssl - Servidor HTTP Apache Versi&oacute;n 2.5</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css">
<script src="../style/scripts/prettify.min.js">
</script>
<link href="../images/favicon.png" rel="shortcut icon"></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">M&oacute;dulos</a> | <a href="../mod/quickreference.html">Directivas</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Reportar un error</a></p>
<p class="apache">Versi&oacute;n 2.5 del Servidor HTTP Apache</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Servidor HTTP</a> &gt; <a href="https://httpd.apache.org/docs/">Documentaci&oacute;n</a> &gt; <a href="../">Versi&oacute;n 2.5</a> &gt; <a href="./">M&oacute;dulos</a></div>
<div id="page-content">
<div id="preamble"><h1>M&oacute;dulo Apache mod_ssl</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Idiomas disponibles: </span><a href="../en/mod/mod_ssl.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/mod/mod_ssl.html" title="Espa&ntilde;ol">&nbsp;es&nbsp;</a> |
<a href="../fr/mod/mod_ssl.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a></p>
</div>
<div class="outofdate">Esta traducci&oacute;n podr&iacute;a estar
obsoleta. Consulte la versi&oacute;n en ingl&eacute;s de la
documentaci&oacute;n para comprobar si se han producido cambios
recientemente.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Descripci&oacute;n:</a></th><td>Criptograf&iacute;a fuerte usando una Capa de Sockets Seguros (Secure
Sockets Layer SSL) y protocolos de Seguridad de la Capa de Transporte
(Transport Layer Security TLS)</td></tr>
<tr><th><a href="module-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificador de M&oacute;dulos:</a></th><td>ssl_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichero de C&oacute;digo Fuente:</a></th><td>mod_ssl.c</td></tr></table>
<h3>Resumen de contenidos</h3>
<p>Este m&oacute;dulo ofrece soporte para SSL v3 y TLS v1.x para el Servidor Apache
HTTP. SSL v2 ya no est&aacute; soportado.</p>
<p>Este m&oacute;dulo depende de <a href="http://www.openssl.org/">OpenSSL</a> para
proveer el motor criptogr&aacute;fico.</p>
<p>Se facilitan m&aacute;s detalles, discusi&oacute;n y ejemplos en la
<a href="../ssl/">documentaci&oacute;n SSL</a>.</p>
</div>
<div id="quickview"><h3>Temas</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif"> <a href="#envvars">Variables de Entorno</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#logformats">Formatos de Log Personalizados</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#notes">Notas de Solicitud</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#expressionparser">Extensi&oacute;n Int&eacute;rprete de Expresiones</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#authzproviders">Proveedores de Autorizaci&oacute;n para su uso con
Require</a></li>
</ul><h3 class="directives">Directivas</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif"> <a href="#sslcacertificatefile">SSLCACertificateFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcacertificatepath">SSLCACertificatePath</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcadnrequestfile">SSLCADNRequestFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcadnrequestpath">SSLCADNRequestPath</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcarevocationcheck">SSLCARevocationCheck</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcarevocationfile">SSLCARevocationFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcarevocationpath">SSLCARevocationPath</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcertificatechainfile">SSLCertificateChainFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcertificatefile">SSLCertificateFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslciphersuite">SSLCipherSuite</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslclienthellovars">SSLClientHelloVars</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcompression">SSLCompression</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslcryptodevice">SSLCryptoDevice</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslechkeydir">SSLECHKeyDir</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslengine">SSLEngine</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslfips">SSLFIPS</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslhonorcipherorder">SSLHonorCipherOrder</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspdefaultresponder">SSLOCSPDefaultResponder</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspenable">SSLOCSPEnable</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspnoverify">SSLOCSPNoverify</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspoverrideresponder">SSLOCSPOverrideResponder</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspproxyurl">SSLOCSPProxyURL</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocsprespondercertificatefile">SSLOCSPResponderCertificateFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocsprespondertimeout">SSLOCSPResponderTimeout</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspresponsemaxage">SSLOCSPResponseMaxAge</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspresponsetimeskew">SSLOCSPResponseTimeSkew</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslocspuserequestnonce">SSLOCSPUseRequestNonce</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslopensslconfcmd">SSLOpenSSLConfCmd</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#ssloptions">SSLOptions</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslpassphrasedialog">SSLPassPhraseDialog</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslpolicy">SSLPolicy</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslprotocol">SSLProtocol</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycacertificatefile">SSLProxyCACertificateFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycacertificatepath">SSLProxyCACertificatePath</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycarevocationcheck">SSLProxyCARevocationCheck</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycarevocationfile">SSLProxyCARevocationFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycarevocationpath">SSLProxyCARevocationPath</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycheckpeercn">SSLProxyCheckPeerCN</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycheckpeerexpire">SSLProxyCheckPeerExpire</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxycheckpeername">SSLProxyCheckPeerName</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxyciphersuite">SSLProxyCipherSuite</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxyengine">SSLProxyEngine</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxyprotocol">SSLProxyProtocol</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxystoreuri">SSLProxyStoreURI</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxytrusturi">SSLProxyTrustURI</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxyverify">SSLProxyVerify</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslproxyverifydepth">SSLProxyVerifyDepth</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslrandomseed">SSLRandomSeed</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslrenegbuffersize">SSLRenegBufferSize</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslrequire">SSLRequire</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslrequiressl">SSLRequireSSL</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslsessioncache">SSLSessionCache</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslsessioncachetimeout">SSLSessionCacheTimeout</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslsessionticketkeyfile">SSLSessionTicketKeyFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslsessiontickets">SSLSessionTickets</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslsrpunknownuserseed">SSLSRPUnknownUserSeed</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslsrpverifierfile">SSLSRPVerifierFile</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingcache">SSLStaplingCache</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingerrorcachetimeout">SSLStaplingErrorCacheTimeout</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingfaketrylater">SSLStaplingFakeTryLater</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingforceurl">SSLStaplingForceURL</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingrespondertimeout">SSLStaplingResponderTimeout</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingresponsemaxage">SSLStaplingResponseMaxAge</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingresponsetimeskew">SSLStaplingResponseTimeSkew</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingreturnrespondererrors">SSLStaplingReturnResponderErrors</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstaplingstandardcachetimeout">SSLStaplingStandardCacheTimeout</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstoreuri">SSLStoreURI</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslstrictsnivhostcheck">SSLStrictSNIVHostCheck</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#ssltrustrequesturi">SSLTrustRequestURI</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#ssltrusturi">SSLTrustURI</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslusername">SSLUserName</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslusestapling">SSLUseStapling</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslverifyclient">SSLVerifyClient</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslverifydepth">SSLVerifyDepth</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#sslvhostsnipolicy">SSLVHostSNIPolicy</a></li>
</ul>
<h3>Lista de comprobaci&oacute;n de errores corregidos</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">httpd historial de cambios</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_ssl">Problemas Conocidos</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_ssl">Reportar un error</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="envvars">Variables de Entorno <a title="Enlace permanente" href="#envvars" class="permalink">&para;</a></h2>
<p>Este m&oacute;dulo puede ser configurado para proveer muchos elementos de informaci&oacute;n
SSL como variables de entorno adicionales para el espacio de nombres de SSI y
CGI. Esta informaci&oacute;n no se facilita por defecto por razones de rendimiento.
(Vea StdEnvVars de <code class="directive">SSLOptions</code> m&aacute;s adelante.) Las
variables generadas se listan en la tabla a continuaci&oacute;n. Para
retrocompatibilidad la informaci&oacute;n tambi&eacute;n puede estar disponible bajo distintos
nombres. Vea el cap&iacute;tulo <a href="../ssl/ssl_compat.html">Compatibilidad</a>
para m&aacute;s detalles sobre las variables de compatibilidad.</p>
<table class="bordered">
<tr>
<th><a name="table3">Nombre de Variable:</a></th>
<th>Valor Tipo:</th>
<th>Descripci&oacute;n:</th>
</tr>
<tr><td><code>HTTPS</code></td> <td>flag</td> <td>Se est&aacute; usando HTTPS.</td></tr>
<tr><td><code>SSL_PROTOCOL</code></td> <td>string</td> <td>El protocolo SSL versi&oacute;n (SSLv3, TLSv1, TLSv1.1, TLSv1.2)</td></tr>
<tr><td><code>SSL_SESSION_ID</code></td> <td>string</td> <td>El id de sesi&oacute;n SSL codificado en hexadecimal</td></tr>
<tr><td><code>SSL_SESSION_RESUMED</code></td> <td>string</td> <td>Sesi&oacute;n SSL inicial o reanudada. Nota: m&uacute;ltiples peticiones pueden servirse a trav&eacute;s de la misma sesi&oacute;n SSL (Inicial o Reanudada) si el KeepAlive de HTTP est&aacute; en uso</td></tr>
<tr><td><code>SSL_SECURE_RENEG</code></td> <td>string</td> <td><code>true</code> si la renegociaci&oacute;n segura est&aacute; soportada, si no <code>false</code></td></tr>
<tr><td><code>SSL_CIPHER</code></td> <td>string</td> <td>El nombre de la especificaci&oacute;n del cifrado</td></tr>
<tr><td><code>SSL_CIPHER_EXPORT</code></td> <td>string</td> <td><code>true</code> si el cifrado es un cifrado export</td></tr>
<tr><td><code>SSL_CIPHER_USEKEYSIZE</code></td> <td>number</td> <td>N&uacute;mero de bits de cifrado (en uso actualmente)</td></tr>
<tr><td><code>SSL_CIPHER_ALGKEYSIZE</code></td> <td>number</td> <td>N&uacute;mero de bits de cifrado (posibles)</td></tr>
<tr><td><code>SSL_COMPRESS_METHOD</code></td> <td>string</td> <td>M&eacute;todo de compresi&oacute;n SSL negociado</td></tr>
<tr><td><code>SSL_VERSION_INTERFACE</code></td> <td>string</td> <td>La versi&oacute;n de mod_ssl</td></tr>
<tr><td><code>SSL_VERSION_LIBRARY</code></td> <td>string</td> <td>La versi&oacute;n del programa OpenSSL</td></tr>
<tr><td><code>SSL_CLIENT_M_VERSION</code></td> <td>string</td> <td>La versi&oacute;n del certificado cliente</td></tr>
<tr><td><code>SSL_CLIENT_M_SERIAL</code></td> <td>string</td> <td>El serial del certificado cliente</td></tr>
<tr><td><code>SSL_CLIENT_S_DN</code></td> <td>string</td> <td>Sujeto DN en el certificado cliente</td></tr>
<tr><td><code>SSL_CLIENT_S_DN_</code><em>x509</em></td> <td>string</td> <td>Componente del Sujeto DN cliente</td></tr>
<tr><td><code>SSL_CLIENT_SAN_Email_</code><em>n</em></td> <td>string</td> <td>Entradas de extensi&oacute;n subjectAltName del certificado cliente del tipo rfc822Name</td></tr>
<tr><td><code>SSL_CLIENT_SAN_DNS_</code><em>n</em></td> <td>string</td> <td>Entradas de extensi&oacute;n subjectAltName del tipo dNSName</td></tr>
<tr><td><code>SSL_CLIENT_SAN_OTHER_msUPN_</code><em>n</em></td> <td>string</td> <td>Entradas de extensi&oacute;n subjectAltName del certificado cliente del tipo otherName, Microsoft User Principal Name form (OID 1.3.6.1.4.1.311.20.2.3)</td></tr>
<tr><td><code>SSL_CLIENT_I_DN</code></td> <td>string</td> <td>DN del firmante en el certificado cliente</td></tr>
<tr><td><code>SSL_CLIENT_I_DN_</code><em>x509</em></td> <td>string</td> <td>Componente del DN en el firmante del certificado cliente</td></tr>
<tr><td><code>SSL_CLIENT_V_START</code></td> <td>string</td> <td>Validez del certificado cliente (fecha de inicio)</td></tr>
<tr><td><code>SSL_CLIENT_V_END</code></td> <td>string</td> <td>Validez del certificado cliente (fecha fin)</td></tr>
<tr><td><code>SSL_CLIENT_V_REMAIN</code></td> <td>string</td> <td>N&uacute;mero de d&iacute;as hasta que el certificado cliente expira</td></tr>
<tr><td><code>SSL_CLIENT_A_SIG</code></td> <td>string</td> <td>Algoritmo usado para la firma del certificado cliente</td></tr>
<tr><td><code>SSL_CLIENT_A_KEY</code></td> <td>string</td> <td>Algoritmo usado para la clave p&uacute;blica del certificado cliente.</td></tr>
<tr><td><code>SSL_CLIENT_CERT</code></td> <td>string</td> <td>Certificado cliente codificado en PEM</td></tr>
<tr><td><code>SSL_CLIENT_CERT_CHAIN_</code><em>n</em></td> <td>string</td> <td>Certificados codificados en PEM en la cadena de certificados cliente</td></tr>
<tr><td><code>SSL_CLIENT_CERT_RFC4523_CEA</code></td> <td>string</td> <td>N&uacute;mero de serie y distribuidor del certificado. El formato coincide con el CertificateExactAssertion en RFC4523</td></tr>
<tr><td><code>SSL_CLIENT_VERIFY</code></td> <td>string</td> <td><code>NONE</code>, <code>SUCCESS</code>, <code>GENEROUS</code> or <code>FAILED:</code><em>reason</em></td></tr>
<tr><td><code>SSL_SERVER_M_VERSION</code></td> <td>string</td> <td>La versi&oacute;n del certificado del servidor</td></tr>
<tr><td><code>SSL_SERVER_M_SERIAL</code></td> <td>string</td> <td>El serial del certificado del servidor</td></tr>
<tr><td><code>SSL_SERVER_S_DN</code></td> <td>string</td> <td>Nombre DN en el certificado del servidor</td></tr>
<tr><td><code>SSL_SERVER_SAN_Email_</code><em>n</em></td> <td>string</td> <td>Entradas de extensi&oacute;n subjectAltName en el certificado del servidor del tipo rfc822Name</td></tr>
<tr><td><code>SSL_SERVER_SAN_DNS_</code><em>n</em></td> <td>string</td> <td>Entradas de Extensi&oacute;n subjectAltName del tipo Server dNSName del certificado del Servidor</td></tr>
<tr><td><code>SSL_SERVER_SAN_OTHER_dnsSRV_</code><em>n</em></td> <td>string</td> <td>Entradas de extensi&oacute;n subjectAltName del tipo otherName, forma SRVName (OID 1.3.6.1.5.5.7.8.7, RFC 4985) del certificado del servidor.</td></tr>
<tr><td><code>SSL_SERVER_S_DN_</code><em>x509</em></td> <td>string</td> <td>Componente del Sujeto DN del servidor</td></tr>
<tr><td><code>SSL_SERVER_I_DN</code></td> <td>string</td> <td>DN del Firmante del certificado del servidor</td></tr>
<tr><td><code>SSL_SERVER_I_DN_</code><em>x509</em></td> <td>string</td> <td>Componente en el DN del firmante del servidor</td></tr>
<tr><td><code>SSL_SERVER_V_START</code></td> <td>string</td> <td>Validez del certificado del servidor (fecha de inicio)</td></tr>
<tr><td><code>SSL_SERVER_V_END</code></td> <td>string</td> <td>Validez del certificado del servidor (fecha de fin)</td></tr>
<tr><td><code>SSL_SERVER_A_SIG</code></td> <td>string</td> <td>Algoritmo utilizado para la firma del certificado del servidor</td></tr>
<tr><td><code>SSL_SERVER_A_KEY</code></td> <td>string</td> <td>Algoritmo utilizado para la clave p&uacute;blica del certificado del servidor</td></tr>
<tr><td><code>SSL_SERVER_CERT</code></td> <td>string</td> <td>Certificado del servidor codificado en PEM</td></tr>
<tr><td><code>SSL_SRP_USER</code></td> <td>string</td> <td>Nombre de usuario SRP</td></tr>
<tr><td><code>SSL_SRP_USERINFO</code></td> <td>string</td> <td>Informaci&oacute;n de usuario SRP</td></tr>
<tr><td><code>SSL_TLS_SNI</code></td> <td>string</td> <td>Contenido de la extensi&oacute;n TLS SNI (si se provee en el ClientHello)</td></tr>
</table>
<p><em>x509</em> especifica un componente de un DN X.509; uno entre
<code>C,ST,L,O,OU,CN,T,I,G,S,D,UID,Email</code>. En Apache 2.2.0 en
posterior, <em>x509</em> tambi&eacute;n puede incluir un sufijo <code>_n</code>
num&eacute;rico. Si el DN en cuesti&oacute;n contiene m&uacute;ltiples atributos del mismo
nombre, este sufijo se usa para un &iacute;ndice basado en ceros para seleccionar
un atributo en particular. Por ejemplo, donde el sujeto del DN del
certificado del servidor incluir&aacute; dos atributos OU,
<code>SSL_SERVER_S_DN_OU_0</code> y
<code>SSL_SERVER_S_DN_OU_1</code> podr&iacute;a usarse para referenciar cada una.
Una variable sin un sufijo <code>_n</code> es equivalente a ese nombre con un
sufijo <code>_0</code>; el primer (y &uacute;nico) atributo.
Cuando la tabla del entorno se llena usando la opci&oacute;n <code>StdEnvVars</code>
de la directiva <code class="directive"><a href="#ssloptions">SSLOptions</a></code>, el primer
(o &uacute;nico) atributo de cualquier DN se a&ntilde;ade s&oacute;lo bajo un nombre sin sufijo;
p. ej. no se a&ntilde;aden entradas con sufijo <code>_0</code>.</p>
<p>En httpd 2.5.0 y posterior, se puede a&ntilde;adir un sufijo <em>_RAW</em> a
<em>x509</em> en un componente DN para suprimir la conversi&oacute;n del valor
del atributo a UTF-8. Esto se debe colocar despu&eacute;s del sufijo de indice (si lo
hay). Por ejemplo, se podr&iacute;a usar <code>SSL_SERVER_S_DN_OU_RAW</code> o
<code>SSL_SERVER_S_DN_OU_0_RAW</code>.</p>
<p>El formato de las variables <em>*_DN</em> ha cambiado en Apache HTTPD
2.3.11. Vea la opci&oacute;n <code>LegacyDNStringFormat</code> para
<code class="directive"><a href="#ssloptions">SSLOptions</a></code> para m&aacute;s detalles.</p>
<p><code>SSL_CLIENT_V_REMAIN</code> s&oacute;lo est&aacute; disponible en la versi&oacute;n 2.1 y
posterior.</p>
<p>Se puede usar varias variables de entorno adicionales con expresiones en
<code class="directive">SSLRequire</code>, o en formatos de log personalizados:</p>
<div class="note"><pre>HTTP_USER_AGENT PATH_INFO AUTH_TYPE
HTTP_REFERER QUERY_STRING SERVER_SOFTWARE
HTTP_COOKIE REMOTE_HOST API_VERSION
HTTP_FORWARDED REMOTE_IDENT TIME_YEAR
HTTP_HOST IS_SUBREQ TIME_MON
HTTP_PROXY_CONNECTION DOCUMENT_ROOT TIME_DAY
HTTP_ACCEPT SERVER_ADMIN TIME_HOUR
THE_REQUEST SERVER_NAME TIME_MIN
REQUEST_FILENAME SERVER_PORT TIME_SEC
REQUEST_METHOD SERVER_PROTOCOL TIME_WDAY
REQUEST_SCHEME REMOTE_ADDR TIME
REQUEST_URI REMOTE_USER</pre></div>
<p>En estos contextos, tambi&eacute;n se pueden usar dos formatos especiales:</p>
<dl>
<dt><code>ENV:<em>nombredevariable</em></code></dt>
<dd>Esto se rellenar&aacute; al valor de la variable de entorno est&aacute;ndar
<em>nombredevariable</em>.</dd>
<dt><code>HTTP:<em>nombredecabecera</em></code></dt>
<dd>Esto se rellenar&aacute; con el valor de la cabecera de solicitud con el nombre
<em>nombredecabecera</em>.</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="logformats">Formatos de Log Personalizados <a title="Enlace permanente" href="#logformats" class="permalink">&para;</a></h2>
<p>Cuando se compila <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> en Apache o al menos se carga (en
situaci&oacute;n de DSO) existen funciones adicionales para el
<a href="mod_log_config.html#formats">Formatos de Log Personalizados</a> de
<code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>. Primero hay una funci&oacute;n de extensi&oacute;n de formato
adicional ``<code>%{</code><em>varname</em><code>}x</code>'' que puede usarse
para extender cualquier variable facilitada por cualquier m&oacute;dulo, especialmente
aquellas que son facilitadas por mod_ssl que puede encontrar en la tabla de m&aacute;s
arriba.</p>
<p>
Para retro compatibilidad adicionalmente se facilita una funci&oacute;n de formato de
criptograf&iacute;a ``<code>%{</code><em>nombre</em><code>}c</code>''. Informaci&oacute;n sobre
esta funci&oacute;n se facilita en cap&iacute;tulo de <a href="../ssl/ssl_compat.html">Compatibilidad</a>.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">CustomLog "logs/ssl_request_log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"</pre>
</div>
<p>Estos formatos incluso funcionan sin la opci&oacute;n de configuraci&oacute;n
<code>StdEnvVars</code> de la directiva
<code class="directive"><a href="#ssloptions">SSLOptions</a></code>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="notes">Notas de Solicitud <a title="Enlace permanente" href="#notes" class="permalink">&para;</a></h2>
<p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> configura "notas" para la petici&oacute;n que pueden
usarse en el registro de logs con la cadena de caracteres
<code>%{<em>nombre</em>}n</code> en <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>.</p>
<p>A continuaci&oacute;n se indican las notas soportadas:</p>
<dl>
<dt><code>ssl-access-forbidden</code></dt>
<dd>Esta nota se configura al valor <code>1</code> si el acceso fue
denegado debido a una directiva <code class="directive">SSLRequire</code> o
<code class="directive">SSLRequireSSL</code>.</dd>
<dt><code>ssl-secure-reneg</code></dt>
<dd>Si se compila <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> con una versi&oacute;n de OpenSSL que
soporta la extensi&oacute;n de renegociaci&oacute;n segura, esta nota se configura con el
valor <code>1</code> si se usa SSL para la conexi&oacute;n actual y el cliente
tambi&eacute;n soporta la extensi&oacute;n de renegociaci&oacute;n segura. Si el cliente no
soporta la extensi&oacute;n de renegociaci&oacute;n segura, esta nota se configura con el valor
<code>0</code>.
Si se compila <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> con una versi&oacute;n de OpenSSL que no
soporta renegociaci&oacute;n segura, o si SSL no se usa en la conexi&oacute;n actual, esta
nota no se configura.</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="expressionparser">Extensi&oacute;n Int&eacute;rprete de Expresiones <a title="Enlace permanente" href="#expressionparser" class="permalink">&para;</a></h2>
<p>Cuando se compila <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> en Apache o se carga
(bajo situaci&oacute;n DSO) cualquier <a name="envvars">variable</a>
facilitada por <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> puede usarse en expresiones para el
<a href="../expr.html">Int&eacute;rprete de Expresiones ap_expr</a>.
Se puede hacer referencia a las variables usando la sintaxis
``<code>%{</code><em>varname</em><code>}</code>''. Comenzando con la versi&oacute;n
2.4.18 uno tambi&eacute;n puede usar el estilo de sintaxis de
<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
``<code>%{SSL:</code><em>nombredevariable</em><code>}</code>'' o el estilo de
sintaxis de la funci&oacute;n
``<code>ssl(</code><em>nombredevariable</em><code>)</code>''.</p>
<div class="example"><h3>Ejemplo (usando <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code>)</h3><pre class="prettyprint lang-config">Header set X-SSL-PROTOCOL "expr=%{SSL_PROTOCOL}"
Header set X-SSL-CIPHER "expr=%{SSL:SSL_CIPHER}"</pre>
</div>
<p>Esta caracter&iacute;stica funciona incluso sin configurar la opci&oacute;n
<code>StdEnvVars</code> de la directiva
<code class="directive"><a href="#ssloptions">SSLOptions</a></code>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="authzproviders">Proveedores de Autorizaci&oacute;n para su uso con
Require <a title="Enlace permanente" href="#authzproviders" class="permalink">&para;</a></h2>
<p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> facilita unos pocos proveedores de autenticaci&oacute;n
para usarse con la directiva <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>
de <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>.</p>
<h3 id="reqssl">Require ssl</h3>
<p>El proveedor de <code>ssl</code> deniega el acceso si la conexi&oacute;n no est&aacute;
encriptada con SSL. Esto es similar a la directiva
<code class="directive">SSLRequireSSL</code>.</p>
<pre class="prettyprint lang-config">Require ssl</pre>
<h3 id="reqverifyclient">Require ssl-verify-client</h3>
<p>El proveedor de <code>ssl</code> permite acceso si el usuario se autentica
con un certificado cliente v&aacute;lido. Esto s&oacute;lo es &uacute;til si se est&aacute; usando
<code>SSLVerifyClient optional</code>.</p>
<p>El siguiente ejemplo permite acceso si el usuario se autentica o bien
con certificado cliente o con usuario y contrase&ntilde;a.</p>
<pre class="prettyprint lang-config">Require ssl-verify-client
Require valid-user</pre>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcacertificatefile">Directiva <span id="SSLCACertificateFile">SSLCACertificateFile</span> <a title="Enlace permanente" href="#sslcacertificatefile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Fichero de Certificados CA concatenados y codificados en PEM para
la Autenticaci&oacute;n de Cliente</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLCACertificateFile <em>ruta-al-fichero</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura el fichero <em>todo-en-uno</em> donde puede ensamblar
los Certificados de las Autoridades de Certificaci&oacute;n (CA) de los
<em>clientes</em> que acceden a su servidor. Esto se usan para la Autenticaci&oacute;n
de Cliente. Tal fichero es sencillamente la concatenaci&oacute;n, en orden de preferencia,
de varios ficheros de Certificado codificados en PEM. Esto puede usarse
alternativamente y/o adicionalmente a
<code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLCACertificateFile "/usr/local/apache2/conf/ssl.crt/ca-bundle-client.crt"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcacertificatepath">Directiva <span id="SSLCACertificatePath">SSLCACertificatePath</span> <a title="Enlace permanente" href="#sslcacertificatepath" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Directorio de certificados CA codificados en PEM para la
autenticaci&oacute;n de Cliente</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLCACertificatePath <em>ruta-de-directorio</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura el directorio donde guarda los certificados de
Autoridades de Certificaci&oacute;n (CAs) de los clientes que acceder&aacute;n a su servidor.
Esto se usar&aacute;n para verificar el certificado cliente en la Autenticaci&oacute;n de
Cliente.</p>
<p>
Los ficheros en este directorio tienen que ser codificados en PEM y se acceden a
trav&eacute;s de nombres de ficheros con hash. As&iacute; que generalmente no puede poner
simplemente los ficheros ah&iacute;: tambi&eacute;n tiene que crear enlaces simb&oacute;licos con
nombre <em>valor-hash</em><code>.N</code>. Y siempre deber&iacute;a asegurarse de que
este directorio contiene los enlaces simb&oacute;licos apropiados.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLCACertificatePath "/usr/local/apache2/conf/ssl.crt/"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcadnrequestfile">Directiva <span id="SSLCADNRequestFile">SSLCADNRequestFile</span> <a title="Enlace permanente" href="#sslcadnrequestfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Fichero de certificados CA concatenados codificados en PEM para
definir nombres de CA aceptables</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLCADNRequestFile <em>ruta-al-fichero</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>Cuando se solicita un certificado cliente por mod_ssl, una lista de
<em>nombres de Autoridad Certificadora aceptables</em> se env&iacute;a al cliente en
el saludo SSL. Estos nombres de CA se pueden usar por el cliente para
seleccionar un certificado cliente apropiado entre los que tiene disponibles.</p>
<p>Si no est&aacute;n las directivas <code class="directive"><a href="#sslcadnrequestpath">SSLCADNRequestPath</a></code> o
<code class="directive">SSLCADNRequestFile</code>, entonces el
conjunto de nombres aceptables de CA enviados al cliente es la de los nombres
de todos los certificados de CA cargados en las directivas
<code class="directive"><a href="#sslcacertificatefile">SSLCACertificateFile</a></code> y
<code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>; en otras palabras,
los nombres de las CAs que se usar&aacute;n actualmente para verificar el certificado
cliente.</p>
<p>En algunas circunstancias, es &uacute;til poder enviar un conjunto de nombres de CA
aceptables diferente de las CAs usadas para verificar el certificado cliente -
por ejemplo, si los certificados cliente est&aacute;n firmados CAs intermedias. En tales
casos, <code class="directive"><a href="#sslcadnrequestpath">SSLCADNRequestPath</a></code> y/o
<code class="directive">SSLCADNRequestFile</code> se pueden usar; los
nombres de CA aceptables se toman del conjunto completo de certificados en el
directorio y/o fichero especificados por este par de directivas.</p>
<p><code class="directive">SSLCADNRequestFile</code> debe especificar
un fichero <em>todo-en-uno</em> que contenga una concatenaci&oacute;n de certificados
CA codificados en PEM.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLCADNRequestFile "/usr/local/apache2/conf/ca-names.crt"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcadnrequestpath">Directiva <span id="SSLCADNRequestPath">SSLCADNRequestPath</span> <a title="Enlace permanente" href="#sslcadnrequestpath" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Directorio de Certificados CA codificados en PEM para definir
nombres de CA aceptables</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLCADNRequestPath <em>ruta-al-directorio</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>Esta directiva opcional puede usarse para especificar un conjunto de
<em>nombres de CA aceptables</em> que ser&aacute;n enviados al cliente cuando se
solicita un certificado cliente. Vea la directiva
<code class="directive"><a href="#sslcadnrequestfile">SSLCADNRequestFile</a></code> para m&aacute;s
detalles.</p>
<p>Los ficheros en este directorio tienen que estar codificados en PEM y se
accede a ellos con nombres de ficheros con hash. As&iacute; que generalmente no puede
poner sin m&aacute;s los ficheros de Certificado ah&iacute;: tambi&eacute;n tiene que crear enlaces
simb&oacute;licos llamados <em>valor-de-hash</em><code>.N</code>. Y siempre deber&iacute;a
estar seguro de que este directorio contiene los enlaces simb&oacute;licos
apropiados.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLCADNRequestPath "/usr/local/apache2/conf/ca-names.crt/"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcarevocationcheck">Directiva <span id="SSLCARevocationCheck">SSLCARevocationCheck</span> <a title="Enlace permanente" href="#sslcarevocationcheck" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Activar comprobaci&oacute;n de revocaci&oacute;n basada en CRL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLCARevocationCheck chain|leaf|none <em>modificador</em>es</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLCARevocationCheck none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td><em>Modificador</em>es Opcionales disponibles en httpd 2.4.21 o
posterior</td></tr>
</table>
<p>
Activa la comprobaci&oacute;n de la lista de revocaci&oacute;n de certificados (CRL). Al menos
<code class="directive"><a href="#sslcarevocationfile">SSLCARevocationFile</a></code>
o <code class="directive"><a href="#sslcarevocationpath">SSLCARevocationPath</a></code> deben estar
configuradas. Cuando se configuran a <code>chain</code> (configuraci&oacute;n
recomendada), las comprobaciones de CRL se aplican a todos los certificados
en la cadena, mientras que si se configura a <code>leaf</code> limita las
comprobaciones al certificado firmado final.
</p>
<p>Los <em>modificador</em>es disponibles son:</p>
<ul>
<li><code>no_crl_for_cert_ok</code>
<p>
Previamente a la versi&oacute;n 2.3.15, la comprobaci&oacute;n de CRL en mod_ssl tambi&eacute;n
ten&iacute;a &eacute;xito cuando no se encontraban CRL/s para los certificados comprobados
en ninguna de las ubicaciones configuradas con
<code class="directive"><a href="#sslcarevocationfile">SSLCARevocationFile</a></code>
o <code class="directive"><a href="#sslcarevocationpath">SSLCARevocationPath</a></code>.
</p>
<p>
Con la introducci&oacute;n de <code class="directive">SSLCARevocationFile</code>,
el comportamiento ha cambiado: por defecto con <code>chain</code> o
<code>leaf</code>, los CRLs <strong>deben</strong> estar presentes
para que la validaci&oacute;n tenga &eacute;xito, si no fallar&aacute; con un error
<code>"unable to get certificate CRL"</code>.
</p>
<p>
El <em>modificador</em> <code>no_crl_for_cert_ok</code> permite
restaurar el comportamiento anterior..
</p>
</li>
</ul>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLCARevocationCheck chain</pre>
</div>
<div class="example"><h3>Compatibilidad con versiones 2.2</h3><pre class="prettyprint lang-config">SSLCARevocationCheck chain no_crl_for_cert_ok</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcarevocationfile">Directiva <span id="SSLCARevocationFile">SSLCARevocationFile</span> <a title="Enlace permanente" href="#sslcarevocationfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Fichero de CRL's de CA concatenados y codificados en PEM para la
Autenticaci&oacute;n de ClienteFile of concatenated PEM-encoded CA CRLs for
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLCARevocationFile <em>ruta-al-fichero</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura el fichero <em>todo-en-uno</em> donde puede ensamblar
las Listas de Revocaci&oacute;n de Certificados (CRL) de las Autoridades de
Certificaci&oacute;n (CA) para los <em>clientes</em> que conectan a su servidor. Estos
se usan para la Autenticaci&oacute;n de Cliente. Tal fichero es simplemente la
concatenaci&oacute;n de varios ficheros CRL codificados en PEM, en orden de
preferencia. Esto se puede usar alternativamente a/o adicionalmente a
<code class="directive"><a href="#sslcarevocationpath">SSLCARevocationPath</a></code>.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLCARevocationFile "/usr/local/apache2/conf/ssl.crl/ca-bundle-client.crl"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcarevocationpath">Directiva <span id="SSLCARevocationPath">SSLCARevocationPath</span> <a title="Enlace permanente" href="#sslcarevocationpath" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Directorio de CRLs de CA codificados en PEM para la Autenticaci&oacute;n
de Cliente</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLCARevocationPath <em>ruta-al-directorio</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura el directorio donde usted alojar&aacute; las Listas de
Revocaci&oacute;n de Certificados (CRL) de las Autoridades de Certificaci&oacute;n (CAs) para
los clientes que conectan al servidor. Estas se usan para revocar el
certificado cliente en la Autenticaci&oacute;n de Cliente.</p>
<p>
Los ficheros en este directorio tienen que ser codificados en PEM y se accede a
ellos con nombres de ficheros con hash. As&iacute; que generalmente no s&oacute;lo tiene que
poner los ficheros CRL ah&iacute;. Adicionalmente tiene que crear enlaces simb&oacute;licos
llamados <em>valor-de-hash</em><code>.rN</code>. Y deber&iacute;a asegurarse siempre
que este directorio contiene los enlaces simb&oacute;licos apropiados.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLCARevocationPath "/usr/local/apache2/conf/ssl.crl/"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcertificatechainfile">Directiva <span id="SSLCertificateChainFile">SSLCertificateChainFile</span> <a title="Enlace permanente" href="#sslcertificatechainfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Fichero de Certificados CA de Servidor codificado en
PEM</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLCertificateChainFile <em>ruta-al-fichero</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<div class="note"><h3>SSLCertificateChainFile est&aacute; obsoleto</h3>
<p><code>SSLCertificateChainFile</code> qued&oacute; obsoleto con la versi&oacute;n 2.4.8,
cuando se extendi&oacute; <code class="directive"><a href="#sslcertificatefile">SSLCertificateFile</a></code>
para cargar tambi&eacute;n los certificados de CA intermedias del fichero de
certificados del servidor.</p>
</div>
<p>
Esta directiva configura el fichero <em>todo-en-uno</em> donde puede ensamblar los
certificados de Autoridades de Certificaci&oacute;n (CA - Certification Authorities)
que forman la cadena del certificado del servidor. Este comienza con el
certificado de la CA firmante del certificado del servidor y puede ir hasta el
certificado de la CA ra&iacute;z. Tal fichero es simplemente la concatenaci&oacute;n de varios
ficheros de Certificado CA codificado en PEM, generalmente siguiendo la cadena
de certificaci&oacute;n.</p>
<p>
Esto deber&iacute;a usarse alternativamente y/o adicionalmente a
<code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code> para construir
explicitamente la cadena de CA del certificado del servidor que se env&iacute;a al
navegador adem&aacute;s del certificado del servidor. Es especialmente &uacute;ltil
para evitar conflictos con certificados CA cuando se usa autenticaci&oacute;n de
cliente. Porque aunque colocar los CA de la cadena de certificados del servidor
en <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code> tiene el mismo
efecto para la construcci&oacute;n de la cadena de certificados, tiene un efecto
adicional en la que los certificados cliente firmados por el mismo certificado CA
tambi&eacute;n se aceptan en la autenticaci&oacute;n de cliente.</p>
<p>
Pero tenga cuidado: Proveer la cadena de certificados funciona s&oacute;lo si est&aacute;
usando <em>un s&oacute;lo</em> certificado de servidor basado en RSA <em>o</em> DSA. Si
est&aacute; usando un par de certificados juntos RSA+DSA, esto s&oacute;lo funcionar&aacute; si
ambos certificados usan <em>la misma</em> cadena de certificados. Si no los
navegadores se confundir&aacute;n en esta situaci&oacute;n.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLCertificateChainFile "/usr/local/apache2/conf/ssl.crt/ca.crt"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcertificatefile">Directiva <span id="SSLCertificateFile">SSLCertificateFile</span> <a title="Enlace permanente" href="#sslcertificatefile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Fichero de datos Certificado X.509 codificado en PEM</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLCertificateFile <em>ruta-al-fichero</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva apunta a un fichero con datos de certificado en formato PEM. Como
m&iacute;nimo, el fichero debe incluir un certificado final (no s&oacute;lo CA a menos que sea
autofirmado). La directiva puede usarse multiples veces (haciendo referencia a
ficheros distintos) para dar soporte a m&uacute;ltiples algoritmos para la
autenticaci&oacute;n de servidor - t&iacute;picamente RSA, DSA y ECC. El n&uacute;mero de algoritmos
soportados depende de la versi&oacute;n de OpenSSL utilizada por mod_ssl: con la versi&oacute;n
1.0.0 o posterior,
<code>openssl list-public-key-algorithms</code> sacar&aacute; una lista de algoritmos
soportados, vea tambi&eacute;n la nota m&aacute;s adelante sobre limitaciones de versiones
OpenSSL previas a 1.0.2 y la forma de sortearlas.
</p>
<p>
Los ficheros pueden tambi&eacute;n incluir certificados de CA intermedias, ordenados
desde el certificado firmado hasta el certificado ra&iacute;z. Esto est&aacute; soportado con
la versi&oacute;n 2.4.8 y posterior, y deja obsoleta la directiva
<code class="directive"><a href="#sslcertificatechainfile">SSLCertificateChainFile</a></code>.
Cuando se trabaja con OpenSSL 1.0.2 o posterior, esto permite que se configuren
la cadena de CAs intermedias por certificado.
</p>
<p>
Tambi&eacute;n se pueden a&ntilde;adir par&aacute;metros personalizados DH y un nombre de curva EC
para claves ef&iacute;meras al final del primer fichero configurado usando
<code class="directive">SSLCertificateFile</code>.
Esto est&aacute; soportado en la versi&oacute;n 2.4.7 y posterior.
Tales par&aacute;metros pueden ser generados usando los comandos
<code>openssl dhparam</code> y <code>openssl ecparam</code>. Los par&aacute;metros se
pueden a&ntilde;adir tal cual al final del primer fichero de certificado. s&oacute;lo se puede
usar el primer fichero para los par&aacute;metros personalizados, puesto que estos
se aplican independientemente del tipo de algoritmo de autenticaci&oacute;n.
</p>
<p>
Finalmente la clave privada del certificado tambi&eacute;n se puede a&ntilde;adir al fichero
de certificado en lugar de usar por separado la directiva
<code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code>. Esta pr&aacute;ctica
est&aacute; muy desaconsejada. Si se usa, los ficheros de certificado usando tales
ficheros de claves embebidas deben configurarse despu&eacute;s de los certificados que
usan una clave privada en un fichero aparte. Si la clave privada est&aacute; encriptada
, el di&aacute;logo de solicitud de contrase&ntilde;a se fuerza en el arranque.
</p>
<div class="note">
<h3>Interoperabilidad de par&aacute;metro DH con primos &gt; 1024 bits</h3>
<p>
Comenzando con la versi&oacute;n 2.4.7, mod_ssl hace uso de par&aacute;metros DH
estandarizados con longitud de primos de 2048, 3072 y 4096 bits y con longitud
adicional de primos de 6144 y 8192 bits comenzando con la versi&oacute;n 2.4.10
(from <a href="http://www.ietf.org/rfc/rfc3526.txt">RFC 3526</a>), y los
env&iacute;a a clientes bas&aacute;ndose en la longitud de la clave RSA/DSA del certificado.
Con clientes basados en Java en particular (Java 7 o anterior), esto puede
llevar a fallos de saludo inicial SSL - vea esta
<a href="../ssl/ssl_faq.html#javadh">respuesta de FAQ </a> para sortear estos
problemas.
</p>
</div>
<div class="note">
<h3>Par&aacute;metros DH por defecto cuando se usan multiples certificados y
y versiones de OpenSSL anteriores a 1.0.2</h3>
<p>
Cuando se usan m&uacute;ltiples certificados para dar soporte a algoritmos de
autenticaci&oacute;n diferentes (como RSA, DSA pero principalmente ECC) y OpenSSL
anterior a 1.0.2, se recomienda usar o bien par&aacute;metros DH personalizados
(preferiblemente) a&ntilde;adi&eacute;ndolos al primer fichero de certificado (como se
describe m&aacute;s arriba), o ordenar las directivas
<code class="directive">SSLCertificateFile</code> para que los certificados RSA/DSA
est&eacute;n colocadas <strong>despu&eacute;s</strong> del ECC.
</p>
<p>
Esto se debe a una limitaci&oacute;n en versiones m&aacute;s antiguas de OpenSSL que no
permiten que el servidor HTTP Apache determine el certificado seleccionado
actualmente en el momento del saludo SSL (cuando se deben mandar los par&aacute;metros
DH al cliente) pero en su lugar siempre se provee el &uacute;ltimo certificado
configurado. Consecuentemente, el servidor puede seleccionar par&aacute;metros DH
por defecto basado en la longitud de la clave privada incorrecta (las clacves
ECC son mucho m&aacute;s peque&ntilde;as que las RSA/DSA y su longitud no es relevante para
seleccionar primos DH).
</p>
<p>
Puesto que los par&aacute;metros personalizados DH siempre tienen precedencia sobre
los de por defecto, este problema se puede evitar creando y configur&aacute;ndolos
(como se describe arriba), y as&iacute; usar una longitud adecuada/personalizada.
</p>
</div>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLCertificateFile "/usr/local/apache2/conf/ssl.crt/server.crt"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcertificatekeyfile">Directiva <span id="SSLCertificateKeyFile">SSLCertificateKeyFile</span> <a title="Enlace permanente" href="#sslcertificatekeyfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Fichero de clave privada de Servidor codificada en PEM</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLCertificateKeyFile <em>ruta-al-fichero</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva apunta al fichero de clave privada codificado en PEM para el
servidor. Si la clave privada contenida en el fichero est&aacute; encriptada, se
forzar&aacute; un di&aacute;logo de solicitud de contrase&ntilde;a en el arranque.</p>
<p>
La directiva puede usarse m&uacute;ltiples veces (haciendo referencia a ficheros
distintos) para dar soporte a m&uacute;ltiples algoritmos de autenticaci&oacute;n para el
servidor. Por cada directiva
<code class="directive">SSLCertificateKeyFile</code>
directive, debe haber una directiva <code class="directive">SSLCertificateFile</code>
relacionada.</p>
<p>
La clave privada se puede combinar con el certificado en el fichero indicado en
<code class="directive"><a href="#sslcertificatefile">SSLCertificateFile</a></code>, pero esta pr&aacute;ctica
es muy desaconsejable. Si se usa, los ficheros de certificado con la clave
privada dentro deben configurarse despu&eacute;s de los certificados que tienen una
clave privada en otro fichero.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLCertificateKeyFile "/usr/local/apache2/conf/ssl.key/server.key"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslciphersuite">Directiva <span id="SSLCipherSuite">SSLCipherSuite</span> <a title="Enlace permanente" href="#sslciphersuite" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Conjunto de Cifrados disponibles para negociaci&oacute;n en el saludo SSL
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLCipherSuite <em>especificaci&oacute;n-de-cifrado</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLCipherSuite DEFAULT (depende de la versi&oacute;n de OpenSSL)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta compleja directiva usa una cadena de <em>cifrados</em> separados por comas
que consiste en especificaciones de cifrado OpenSSL para configurar el conjunto
de cifrados que se le permite negociar al cliente en la fase de saludo SSL.
Tenga en cuenta que esta directiva se puede usar en contexto de servidor y de
directorio. En contexto de servidor aplica el saludo est&aacute;ndar de SSL cuando se
establece una conexi&oacute;n. En contexto directorio fuerza una renegociaci&oacute;n SSL con
el juego de cifrados despu&eacute;s de que la solicitud HTTP ha sido le&iacute;da pero antes de
que se env&iacute;e la respuesta.</p>
<p>
Una especificaci&oacute;n de cifrado SSL en <em>especificaci&oacute;n-de-cifrado</em> se compone de 4
atributos principales m&aacute;s unos cuantos menores extra:</p>
<ul>
<li><em>Algoritmo de Intercambio de Clave</em>:<br>
RSA, Diffie-Hellman, Elliptic Curve Diffie-Hellman, Secure Remote Password
</li>
<li><em>Algoritmo de Autenticaci&oacute;n</em>:<br>
RSA, Diffie-Hellman, DSS, ECDSA, or none.
</li>
<li><em>Algoritmo de Cifrado/Encriptaci&oacute;n</em>:<br>
AES, DES, Triple-DES, RC4, RC2, IDEA, etc.
</li>
<li><em>Algoritmo de Res&uacute;men de MAC</em>:<br>
MD5, SHA or SHA1, SHA256, SHA384.
</li>
</ul>
<p>Un cifrado SSL puede ser un cifrado export. Los cifrados SSLv2 ya no est&aacute;n
soportados. Para especificar qu&eacute; cifrados usar, uno puede especificar todos
los cifrados a utilizar, de uno en uno, o puede usar alias para
especificar la preferencia y orden de los cifrados (vea <a href="#table1">Tabla
1</a>). La lista actual de cifrados y alias depende de la versi&oacute;n openssl
utilizada. Versiones m&aacute;s modernas de openssl pueden incluir cifrados
adicionales.</p>
<table class="bordered">
<tr><th><a name="table1">Tag</a></th> <th>Description</th></tr>
<tr><td colspan="2"><em>Algoritmo de Intercambio de Clave:</em></td></tr>
<tr><td><code>kRSA</code></td> <td>RSA key exchange</td></tr>
<tr><td><code>kDHr</code></td> <td>Diffie-Hellman key exchange with RSA key</td></tr>
<tr><td><code>kDHd</code></td> <td>Diffie-Hellman key exchange with DSA key</td></tr>
<tr><td><code>kEDH</code></td> <td>Ephemeral (temp.key) Diffie-Hellman key exchange (no cert)</td> </tr>
<tr><td><code>kSRP</code></td> <td>Secure Remote Password (SRP) key exchange</td></tr>
<tr><td colspan="2"><em>Algoritmo de Autenticaci&oacute;n:</em></td></tr>
<tr><td><code>aNULL</code></td> <td>No authentication</td></tr>
<tr><td><code>aRSA</code></td> <td>RSA authentication</td></tr>
<tr><td><code>aDSS</code></td> <td>DSS authentication</td> </tr>
<tr><td><code>aDH</code></td> <td>Diffie-Hellman authentication</td></tr>
<tr><td colspan="2"><em>Algoritmo de Codificaci&oacute;n de Cifrado:</em></td></tr>
<tr><td><code>eNULL</code></td> <td>No encryption</td> </tr>
<tr><td><code>NULL</code></td> <td>alias for eNULL</td> </tr>
<tr><td><code>AES</code></td> <td>AES encryption</td> </tr>
<tr><td><code>DES</code></td> <td>DES encryption</td> </tr>
<tr><td><code>3DES</code></td> <td>Triple-DES encryption</td> </tr>
<tr><td><code>RC4</code></td> <td>RC4 encryption</td> </tr>
<tr><td><code>RC2</code></td> <td>RC2 encryption</td> </tr>
<tr><td><code>IDEA</code></td> <td>IDEA encryption</td> </tr>
<tr><td colspan="2"><em>Algoritmo de Resumen de MAC</em>:</td></tr>
<tr><td><code>MD5</code></td> <td>MD5 hash function</td></tr>
<tr><td><code>SHA1</code></td> <td>SHA1 hash function</td></tr>
<tr><td><code>SHA</code></td> <td>alias for SHA1</td> </tr>
<tr><td><code>SHA256</code></td> <td>SHA256 hash function</td> </tr>
<tr><td><code>SHA384</code></td> <td>SHA384 hash function</td> </tr>
<tr><td colspan="2"><em>Aliases:</em></td></tr>
<tr><td><code>SSLv3</code></td> <td>all SSL version 3.0 ciphers</td> </tr>
<tr><td><code>TLSv1</code></td> <td>all TLS version 1.0 ciphers</td> </tr>
<tr><td><code>EXP</code></td> <td>all export ciphers</td> </tr>
<tr><td><code>EXPORT40</code></td> <td>all 40-bit export ciphers only</td> </tr>
<tr><td><code>EXPORT56</code></td> <td>all 56-bit export ciphers only</td> </tr>
<tr><td><code>LOW</code></td> <td>all low strength ciphers (no export, single DES)</td></tr>
<tr><td><code>MEDIUM</code></td> <td>all ciphers with 128 bit encryption</td> </tr>
<tr><td><code>HIGH</code></td> <td>all ciphers using Triple-DES</td> </tr>
<tr><td><code>RSA</code></td> <td>all ciphers using RSA key exchange</td> </tr>
<tr><td><code>DH</code></td> <td>all ciphers using Diffie-Hellman key exchange</td> </tr>
<tr><td><code>EDH</code></td> <td>all ciphers using Ephemeral Diffie-Hellman key exchange</td> </tr>
<tr><td><code>ECDH</code></td> <td>Elliptic Curve Diffie-Hellman key exchange</td> </tr>
<tr><td><code>ADH</code></td> <td>all ciphers using Anonymous Diffie-Hellman key exchange</td> </tr>
<tr><td><code>AECDH</code></td> <td>all ciphers using Anonymous Elliptic Curve Diffie-Hellman key exchange</td> </tr>
<tr><td><code>SRP</code></td> <td>all ciphers using Secure Remote Password (SRP) key exchange</td> </tr>
<tr><td><code>DSS</code></td> <td>all ciphers using DSS authentication</td> </tr>
<tr><td><code>ECDSA</code></td> <td>all ciphers using ECDSA authentication</td> </tr>
<tr><td><code>aNULL</code></td> <td>all ciphers using no authentication</td> </tr>
</table>
<p>
La parte en que &eacute;sto se vuelve interesante es que &eacute;stos se pueden poner juntos
para especificar el orden y los cifrados que quiere usar. Para acelerar esto
tambi&eacute;n hay pseud&oacute;nimos (<code>SSLv3, TLSv1, EXP, LOW, MEDIUM,
HIGH</code>) para ciertos grupos de cifrados. Estas etiquetas se pueden juntar
con prefijos para formar <em>especificaci&oacute;n-de-cifrado</em>. Los prefijos disponibles son:</p>
<ul>
<li>none: a&ntilde;ade cifrado a la lista</li>
<li><code>+</code>: mueve los cifrados coincidentes a la ubicaci&oacute;n actual en la
lista</li>
<li><code>-</code>: borra los cifrados de la lista (se pueden a&ntilde;adir m&aacute;s
adelante)</li>
<li><code>!</code>: mata el cifrado de la lista completamente
(<strong>no</strong> puede a&ntilde;adirse despu&eacute;s)</li>
</ul>
<div class="note">
<h3>Los cifrados <code>aNULL</code>, <code>eNULL</code> y <code>EXP</code>
siempre est&aacute;n deshabilitados</h3>
<p>Empezando con la versi&oacute;n 2.4.7, null y cifrados de grado export
est&aacute;n siempre deshabilitados, asi que mod_ssl a&ntilde;ade incondicionalmente
<code>!aNULL:!eNULL:!EXP</code> a cualquier lista de cifrados en la
inicializaci&oacute;n.</p>
</div>
<p>Una forma m&aacute;s sencilla de ver todo esto es usar el comando
``<code>openssl ciphers -v</code>'' que facilita una buena forma de crear una
cadena correcta de <em>especificaci&oacute;n-de-cifrado</em>. La cadena <em>especificaci&oacute;n-de-cifrado</em> depende
de la versi&oacute;n de librer&iacute;as OpenSSL utilizadas. Supongamos que es
``<code>RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5</code>'' que significa
lo siguiente: Pon <code>RC4-SHA</code> y <code>AES128-SHA</code> al principio.
Hacemos esto, porque estos cifrados ofrecen un buen compromiso entre velocidad y
seguridad. Despu&eacute;s, incluye los cifrados de seguridad alta y media. Finalmente,
elimina todos los cifrados que no autentican, p.ej. para SSL los cifrados
An&oacute;nimos Diffie-Hellman, as&iacute; como todos los cifrados que usan <code>MD5</code>
como algoritmo de hash porque se ha probado que son insuficientes.</p>
<div class="example"><pre>$ openssl ciphers -v 'RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5'
RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1
AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
... ... ... ... ...
SEED-SHA SSLv3 Kx=RSA Au=RSA Enc=SEED(128) Mac=SHA1
PSK-RC4-SHA SSLv3 Kx=PSK Au=PSK Enc=RC4(128) Mac=SHA1
KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=SHA1</pre></div>
<p>La lista completa de cifrados RSA &amp; DH concretos para SSL se facilita en
la <a href="#table2">Tabla 2</a>.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW</pre>
</div>
<table class="bordered">
<tr><th><a name="table2">Cipher-Tag</a></th> <th>Protocol</th> <th>Key Ex.</th> <th>Auth.</th> <th>Enc.</th> <th>MAC</th> <th>Type</th> </tr>
<tr><td colspan="7"><em>RSA Ciphers:</em></td></tr>
<tr><td><code>DES-CBC3-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>3DES(168)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>IDEA-CBC-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>IDEA(128)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>RC4-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>RC4(128)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>RC4-MD5</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>RC4(128)</td> <td>MD5</td> <td></td> </tr>
<tr><td><code>DES-CBC-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>DES(56)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>EXP-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>RSA(512)</td> <td>RSA</td> <td>DES(40)</td> <td>SHA1</td> <td> export</td> </tr>
<tr><td><code>EXP-RC2-CBC-MD5</code></td> <td>SSLv3</td> <td>RSA(512)</td> <td>RSA</td> <td>RC2(40)</td> <td>MD5</td> <td> export</td> </tr>
<tr><td><code>EXP-RC4-MD5</code></td> <td>SSLv3</td> <td>RSA(512)</td> <td>RSA</td> <td>RC4(40)</td> <td>MD5</td> <td> export</td> </tr>
<tr><td><code>NULL-SHA</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>None</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>NULL-MD5</code></td> <td>SSLv3</td> <td>RSA</td> <td>RSA</td> <td>None</td> <td>MD5</td> <td></td> </tr>
<tr><td colspan="7"><em>Diffie-Hellman Ciphers:</em></td></tr>
<tr><td><code>ADH-DES-CBC3-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>None</td> <td>3DES(168)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>ADH-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>None</td> <td>DES(56)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>ADH-RC4-MD5</code></td> <td>SSLv3</td> <td>DH</td> <td>None</td> <td>RC4(128)</td> <td>MD5</td> <td></td> </tr>
<tr><td><code>EDH-RSA-DES-CBC3-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>RSA</td> <td>3DES(168)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>EDH-DSS-DES-CBC3-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>DSS</td> <td>3DES(168)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>EDH-RSA-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>RSA</td> <td>DES(56)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>EDH-DSS-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH</td> <td>DSS</td> <td>DES(56)</td> <td>SHA1</td> <td></td> </tr>
<tr><td><code>EXP-EDH-RSA-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH(512)</td> <td>RSA</td> <td>DES(40)</td> <td>SHA1</td> <td> export</td> </tr>
<tr><td><code>EXP-EDH-DSS-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH(512)</td> <td>DSS</td> <td>DES(40)</td> <td>SHA1</td> <td> export</td> </tr>
<tr><td><code>EXP-ADH-DES-CBC-SHA</code></td> <td>SSLv3</td> <td>DH(512)</td> <td>None</td> <td>DES(40)</td> <td>SHA1</td> <td> export</td> </tr>
<tr><td><code>EXP-ADH-RC4-MD5</code></td> <td>SSLv3</td> <td>DH(512)</td> <td>None</td> <td>RC4(40)</td> <td>MD5</td> <td> export</td> </tr>
</table>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslclienthellovars">Directiva <span id="SSLClientHelloVars">SSLClientHelloVars</span> <a title="Enlace permanente" href="#sslclienthellovars" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Enable collection of ClientHello variables</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLClientHelloVars on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLClientHelloVars off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Available in httpd 2.5.2 and later, requires OpenSSL 1.1.1 or later</td></tr>
</table><p>The documentation for this directive has
not been translated yet. Please have a look at the English
version.</p></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcompression">Directiva <span id="SSLCompression">SSLCompression</span> <a title="Enlace permanente" href="#sslcompression" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Activa la compresi&oacute;n a nivel de SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLCompression on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLCompression off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible en httpd 2.4.3 y posterior, si se usa OpenSSL 0.9.8 o
posterior; disponible en el contexto de virtualhost si se usa OpenSSL 1.0.0 o
posterior. El valor por defecto sol&iacute;a ser <code>on</code> en la versi&oacute;n
2.4.3</td></tr>
</table>
<p>Esta directiva permite activar la compresi&oacute;n a nivel de SSL.</p>
<div class="warning">
<p>Activar la compresi&oacute;n provoca problemas de seguridad en la mayor&iacute;a de las
configuraciones (como el conocido ataque CRIME).</p>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslcryptodevice">Directiva <span id="SSLCryptoDevice">SSLCryptoDevice</span> <a title="Enlace permanente" href="#sslcryptodevice" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Activar el uso de un hardware acelerador criptogr&aacute;fico</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLCryptoDevice <em>engine</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLCryptoDevice builtin</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva activa el uso de una placa hardware acelerador criptogr&aacute;fico
para aliviar parte de la carga del procesamiento de SSL. Esta directiva
s&oacute;lo puede usarse si el kit de herramientas SSL est&aacute; compilado con soporte de
"engine"; OpenSSL 0.9.7 y posteriores versiones tienen soporte de "engine" por
defecto, en versiones Openssl 0.9.6 debe usarse "-engine".</p>
<p>Para descubrir qu&eacute; nombres de "engine" est&aacute;n soportados, ejecute el comando
"<code>openssl engine</code>".</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config"># For a Broadcom accelerator:
SSLCryptoDevice ubsec</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslechkeydir">Directiva <span id="SSLECHKeyDir">SSLECHKeyDir</span> <a title="Enlace permanente" href="#sslechkeydir" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Load the set of Encrypted Client Hello (ECH) PEM files in the named directory</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLECHKeyDir <var>dirname</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Available in Apache HTTP Server 2.5.1 and later</td></tr>
</table><p>The documentation for this directive has
not been translated yet. Please have a look at the English
version.</p></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslengine">Directiva <span id="SSLEngine">SSLEngine</span> <a title="Enlace permanente" href="#sslengine" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Interruptor de Activaci&oacute;n del motor SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLEngine on|off|optional|addr[:port] [addr[:port]] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLEngine off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>El par&aacute;metro <code>addr:port</code> est&aacute; disponible en Apache
2.4.30 y posterior.</td></tr>
</table>
<p>
Esta directiva sirve para activar o desactivar el uso del motor del protocolo
SSL/TLS. Los valores 'on', 'off' y 'optional' deber&iacute;an usarse dentro de una
secci&oacute;n <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> para
activar SSL/TLS para un host virtual. Por defecto el motor de SSL/TLS est&aacute;
deshabilitado para ambos el servidor principal y todos los host virtuales
configurados.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">&lt;VirtualHost _default_:443&gt;
SSLEngine on
#...
&lt;/VirtualHost&gt;</pre>
</div>
<p>Se deber&iacute;an usar los valores <code>addr:port</code> en la configuraci&oacute;n
global del servidor para activar el motor del Protocolo SSL/TLS para
<em>todos</em> los
<code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>
que coincidan con una de las direcciones de la lista.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLEngine *:443
&lt;VirtualHost *:443&gt;
#...
&lt;/VirtualHost&gt;</pre>
</div>
<p><code class="directive">SSLEngine</code> puede ser configurado a
<code>optional</code>: esto activa el soporte de
<a href="http://www.ietf.org/rfc/rfc2817.txt">RFC 2817</a>.
</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslfips">Directiva <span id="SSLFIPS">SSLFIPS</span> <a title="Enlace permanente" href="#sslfips" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Interruptor del modo SSL FIPS</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLFIPS on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLFIPS off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva activa o desactiva el uso de FIPS_mode en la librer&iacute;a SSL. Esto
debe ponerse en el contexto de la configuraci&oacute;n global del servidor y no puede
configurarse con otras configuraciones que especifiquen lo contrario (SSLFIPS on
seguido de SSLFIPS off o similar). Este modo se aplica a todas las operaciones
de la librer&iacute;a SSL.
</p>
<p>
Si httpd fuera compilado contra una librer&iacute;a SSL que no soporta FIPS_mode,
<code>SSLFIPS on</code> fallar&aacute;. Vea el documento de Pol&iacute;ticas de Seguridad
FIPS 140-2 de su proveedor de librer&iacute;a SSL para requerimientos espec&iacute;ficos para
usar mod_ssl en un modo de operaci&oacute;n aprobado; tenga en cuenta que mod_ssl
en s&iacute; mismo no est&aacute; validado, pero puede ser descrito como un m&oacute;dulo
validado de criptograf&iacute;a FIPS 140-2, cuando todos los componentes son montados
y gestionados bajo las reglas impuestas por la Pol&iacute;tica de Seguridad aplicable.
</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslhonorcipherorder">Directiva <span id="SSLHonorCipherOrder">SSLHonorCipherOrder</span> <a title="Enlace permanente" href="#sslhonorcipherorder" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Opci&oacute;n para forzar el orden de preferencia de cifrados del
servidor</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLHonorCipherOrder on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLHonorCipherOrder off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>Cuando se selecciona un cifrado durante el saludo SSLv3 o TLSv1, normalmente
se selecciona en funci&oacute;n de las preferencias del cliente. Con esta directiva
activada, se usar&aacute; la preferencia del servidor en su lugar.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLHonorCipherOrder on</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspdefaultresponder">Directiva <span id="SSLOCSPDefaultResponder">SSLOCSPDefaultResponder</span> <a title="Enlace permanente" href="#sslocspdefaultresponder" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Configura la URI por defecto del respondedor para la validaci&oacute;n
OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLOCSDefaultResponder <em>uri</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>Esta opci&oacute;n configura el respondedor OCSP por defecto a usar. Si
<code class="directive"><a href="#sslocspoverrideresponder">SSLOCSPOverrideResponder</a></code> no est&aacute;
activada, la URI facilitada se usar&aacute; si no hay una URI de respondedor en el
certificado que est&aacute; siendo verificado.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspenable">Directiva <span id="SSLOCSPEnable">SSLOCSPEnable</span> <a title="Enlace permanente" href="#sslocspenable" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Activa la validaci&oacute;n OCSP para la cadena de certificados del
cliente</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLOCSPEnable on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLOCSPEnable off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>Esta opci&oacute;n activa la validaci&oacute;n OCSP de la cadena de certificados del
cliente. Si esta opci&oacute;n est&aacute; activada, los certificados en la cadena de
certificados del cliente se validar&aacute;n contra un respondedor OCSP despu&eacute;s de que
se hayan hecho las verificaciones normales (incluidas las comprobaciones de
CRL).</p>
<p>El respondedor OCSP utilizado o bien se extrae del mismo certificado, o
derivado de la configuraci&oacute;n; vea las directivas
<code class="directive"><a href="#sslocspdefaultresponder">SSLOCSPDefaultResponder</a></code> y
<code class="directive"><a href="#sslocspoverrideresponder">SSLOCSPOverrideResponder</a></code>
directives.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLVerifyClient on
SSLOCSPEnable on
SSLOCSPDefaultResponder "http://responder.example.com:8888/responder"
SSLOCSPOverrideResponder on</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspnoverify">Directiva <span id="SSLOCSPNoverify">SSLOCSPNoverify</span> <a title="Enlace permanente" href="#sslocspnoverify" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Salta la verificaci&oacute;n de certificados de respondedor
OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLOCSPNoverify <em>On/Off</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLOCSPNoverify Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible en httpd 2.4.26 y posterior, si se usa OpenSSL 0.9.7 o
posterior</td></tr>
</table>
<p>Salta la verificaci&oacute;n de certificados del respondedor OCSP, generalmente
&uacute;til cuando se comprueba un servidor OCSP.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspoverrideresponder">Directiva <span id="SSLOCSPOverrideResponder">SSLOCSPOverrideResponder</span> <a title="Enlace permanente" href="#sslocspoverrideresponder" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Fuerza el uso de una URI de respondedor por defecto para la
validaci&oacute;n OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLOCSPOverrideResponder on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLOCSPOverrideResponder off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>Esta opci&oacute;n fuerza que se use el respondedor OCSP por defecto para la
validaci&oacute;n OCSP del certificado, independientemente de si el certificado que
se est&aacute; validando referencia un respondedor OCSP o no.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspproxyurl">Directiva <span id="SSLOCSPProxyURL">SSLOCSPProxyURL</span> <a title="Enlace permanente" href="#sslocspproxyurl" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>URL de Proxy a utilizar para las consultas OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLOCSPProxyURL <em>url</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible en httpd 2.4.19 y posterior</td></tr>
</table>
<p>Esta opci&oacute;n permite configurar la URL de un proxy HTTP que deber&iacute;a usarse para
todas las consultas a respondedores OCSP.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocsprespondercertificatefile">Directiva <span id="SSLOCSPResponderCertificateFile">SSLOCSPResponderCertificateFile</span> <a title="Enlace permanente" href="#sslocsprespondercertificatefile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Conjunto de certificados de respondedor OCSP confiables codificados
en PEM</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLOCSPResponderCertificateFile <em>fichero</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible en httpd 2.4.26 y posterior, si se usa con OpenSSL
0.9.7 o posterior</td></tr>
</table>
<p>Esto aporta una lista de certificados confiables de respondedor OCSP para
ser usados durante la validaci&oacute;n de certificados de respondedor OCSP. Se conf&iacute;a
en los certificados facilitados de manera impl&iacute;cita sin ninguna comprobaci&oacute;n
posterior. Esto se usa generalmente cuando el certificado del respondedor
OCSP es autofirmado o se omite de la respuesta.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocsprespondertimeout">Directiva <span id="SSLOCSPResponderTimeout">SSLOCSPResponderTimeout</span> <a title="Enlace permanente" href="#sslocsprespondertimeout" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Expiraci&oacute;n de las consultas OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLOCSPResponderTimeout <em>segundos</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLOCSPResponderTimeout 10</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>Esta opci&oacute;n configura el tiempo de expiraci&oacute;n para las consultas a los
respondedores OCSP, cuando <code class="directive"><a href="#sslocspenable">SSLOCSPEnable</a></code>
est&aacute; activado.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspresponsemaxage">Directiva <span id="SSLOCSPResponseMaxAge">SSLOCSPResponseMaxAge</span> <a title="Enlace permanente" href="#sslocspresponsemaxage" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Edad m&aacute;xima permitida para las respuestas OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLOCSPResponseMaxAge <em>segundos</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLOCSPResponseMaxAge -1</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>Esta opci&oacute;n configura la edad m&aacute;xima permitida de las respuestas
OCSP. El valor por defecto (<code>-1</code>) no fuerza una edad m&aacute;xima, lo que
significa que las respuestas OCSP se consideran v&aacute;lidas mientras su campo
<code>nextUpdate</code> est&aacute; en una fecha futura.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspresponsetimeskew">Directiva <span id="SSLOCSPResponseTimeSkew">SSLOCSPResponseTimeSkew</span> <a title="Enlace permanente" href="#sslocspresponsetimeskew" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Desviaci&oacute;n m&aacute;xima de tiempo permitida para la validaci&oacute;n de la
respuesta OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLOCSPResponseTimeSkew <em>segundos</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLOCSPResponseTimeSkew 300</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>Esta opci&oacute;n configura el tiempo m&aacute;ximo permitido de desviaci&oacute;n para las
respuestas OCSP
(cuando se est&aacute;n comprobando sus campos <code>thisUpdate</code> y
<code>nextUpdate</code>).</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslocspuserequestnonce">Directiva <span id="SSLOCSPUseRequestNonce">SSLOCSPUseRequestNonce</span> <a title="Enlace permanente" href="#sslocspuserequestnonce" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Usar un nonce dentro de las consultas OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLOCSPUseRequestNonce on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLOCSPUseRequestNonce on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible en httpd 2.4.10 y posterior</td></tr>
</table>
<p>Esta opci&oacute;n determina si las consultas a respondedores OCSP deber&iacute;an contener
un "nonce" o no. Por defecto, una consulta "nonce" siempre se comprueba y se usa
contra la de la respuesta. Cuando el responderdor no usa "nonce"s (p.ej. Microsoft
OCSP Responder), esta opci&oacute;n deber&iacute;a estar configuada a
<code>off</code>.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslopensslconfcmd">Directiva <span id="SSLOpenSSLConfCmd">SSLOpenSSLConfCmd</span> <a title="Enlace permanente" href="#sslopensslconfcmd" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Configura par&aacute;metros OpenSSL a trav&eacute;s de su API <em>SSL_CONF</em>
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLOpenSSLConfCmd <em>nombre-de-comando</em>
<em>par&aacute;metro-de-comando</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible en httpd 2.4.8 y posterior, si se usa OpenSSL 1.0.2 o
posterior</td></tr>
</table>
<p>Esta directiva expone <em>SSL_CONF</em> de la API de OpenSSL para mod_ssl,
permitiendo una configuraci&oacute;n flexible de par&aacute;metros para OpenSSL sin la
necesidad de implementar directivas adicionales de <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>
cuando se a&ntilde;aden nuevas caracter&iacute;sticas a OpenSSL.</p>
<p>El conjunto de comandos disponibles de
<code class="directive">SSLOpenSSLConfCmd</code> depende de la versi&oacute;n OpenSSL utilizada
para <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> (al menos la versi&oacute;n 1.0.2 es necesaria). Para una
lista de nombres de comandos
soportados, vea la secci&oacute;n <em>Comandos soportados para fichero de
configuraci&oacute;n</em> en la p&aacute;gina de manual
<a href="http://www.openssl.org/docs/man1.0.2/ssl/SSL_CONF_cmd.html#SUPPORTED-CONFIGURATION-FILE-COMMANDS">SSL_CONF_cmd(3)</a>
de OpenSSL.</p>
<p>Algunos de los comandos de <code class="directive">SSLOpenSSLConfCmd</code> se pueden
usar como alternativa a directivas existentes (tales como
<code class="directive"><a href="#sslciphersuite">SSLCipherSuite</a></code> o
<code class="directive"><a href="#sslprotocol">SSLProtocol</a></code>),
aunque deber&iacute;a tenerse en cuenta que la sintaxis / valores disponibles para
par&aacute;metros pueden ser diferentes.</p>
<div class="example"><h3>Ejemplos</h3><pre class="prettyprint lang-config">SSLOpenSSLConfCmd Options -SessionTicket,ServerPreference
SSLOpenSSLConfCmd ECDHParameters brainpoolP256r1
SSLOpenSSLConfCmd ServerInfoFile "/usr/local/apache2/conf/server-info.pem"
SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"
SSLOpenSSLConfCmd SignatureAlgorithms RSA+SHA384:ECDSA+SHA256</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="ssloptions">Directiva <span id="SSLOptions">SSLOptions</span> <a title="Enlace permanente" href="#ssloptions" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Configurar varias opciones del motor SSL en tiempo
real</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLOptions [+|-]<em>opci&oacute;n</em> ...</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>Options</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva puede usarse para controlar varias opciones en tiempo real en
contexto directorio. Normalmente, si m&uacute;ltiples <code>SSLOptions</code>
pueden aplicar a un directorio, entonces se usar&aacute; la m&aacute;s
espec&iacute;fica; las opciones no se fusionan. Sin embargo, si <em>todas</em> las
opciones en la directiva <code>SSLOptions</code> est&aacute;n precedidas de un signo
m&aacute;s (<code>+</code>) o menos (<code>-</code>), las opciones se fusionan.
Cualquier opci&oacute;n precedida de un <code>+</code> es a&ntilde;adida a las opciones que
se est&aacute;n aplicando en ese momento, y cualquier opci&oacute;n precedida de un
<code>-</code> se elimina de las opciones aplicadas en ese momento.</p>
<p>
Las <em>opciones</em> disponibles son:</p>
<ul>
<li><code>StdEnvVars</code>
<p>
Cuando esta opci&oacute;n est&aacute; habilitada, se generan las variables de entorno
est&aacute;ndar de SSL relacionadas con CGI/SSI. Esto est&aacute; desactivado por defecto
por razones de rendimiento, porque el paso de extracci&oacute;n de la informaci&oacute;n
es una operaci&oacute;n bastante costosa. As&iacute; que uno s&oacute;lo activar&iacute;a esta opci&oacute;n
para peticiones CGI o SSI.</p>
</li>
<li><code>ExportCertData</code>
<p>
Cuando se activa esta opci&oacute;n, se generan variables de entorno CGI/SSI
adicionales: <code>SSL_SERVER_CERT</code>, <code>SSL_CLIENT_CERT</code> y
<code>SSL_CLIENT_CERT_CHAIN_</code><em>n</em> (con <em>n</em> = 0,1,2,..).
Estas contienen los certificados X.509 codificados en PEM del servidor
y el cliente para la conexi&oacute;n actual HTTPs y pueden usarse por scripts CGI
para una comprobaci&oacute;n m&aacute;s detallada de los Certificados. Adicionalmente
tambi&eacute;n se facilitan todos los dem&aacute;s certificados de la cadena del
certificado cliente. Esto carga el entorno de variables un poco, as&iacute;
que por esto deber&aacute; usar esta opci&oacute;n para activarla s&oacute;lo cuando sea
necesario.</p>
</li>
<li><code>FakeBasicAuth</code>
<p>
Cuando se activa esta opci&oacute;n, el Nombre Distinguido de Sujeto (DN) del
Certificado Cliente X509 se traduce a un nombre de Autenticaci&oacute;n HTTP B&aacute;sica.
Esto significa que se pueden usar los m&eacute;todos est&aacute;ndar de autenticaci&oacute;n para
control de acceso. El nombre de usuario es tan s&oacute;lo el Sujeto del
Certificado Cliente X509 (se puede determinar ejecutando el comando
de OpenSSL <code>openssl x509</code>: <code>openssl x509 -noout -subject -in
</code><em>certificado</em><code>.crt</code>). La directiva
<code class="directive"><a href="#sslusername">SSLUserName</a></code> puede usarse para
especificar qu&eacute;
parte del Sujeto del Certificado est&aacute; embebida en el nombre de usuario.
Tenga en cuenta que no se obtiene ninguna contrase&ntilde;a del usuario. Cada
entrada en el fichero de usuario necesita esta contrase&ntilde;a:
``<code>xxj31ZMTZzkVA</code>'', que es la versi&oacute;n encriptada en DES de la
palabra `<code>password</code>''. Aquellos que viven bajo la encriptaci&oacute;n
basada en MD5 (por ejemplo bajo FreeBSD or BSD/OS, etc.) deber&iacute;a usar
el siguiente hash MD5 de la misma palabra:
``<code>$1$OXLyS...$Owx8s2/m9/gfkcRVXzgoE/</code>''.</p>
<p>Tenga en cuenta que
la directiva <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicfake">AuthBasicFake</a></code>
dentro de <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> puede usarse como un mecanismo
general para fingir la autenticaci&oacute;n b&aacute;sica, dando control sobre la
estructura tanto del nombre como de la contrase&ntilde;a.</p>
<div class="warning">
<p>Los nombres de usuarios utilizados para <code>FakeBasicAuth</code> no
deben incluir caracteres no-ASCII, caracteres de escape ASCII (tales como
el de nueva l&iacute;nea), o una coma. Si se encuentra una coma, se generar&aacute;
un error 403 Forbidden con httpd 2.5.1 y posterior.</p>
</div>
</li>
<li><code>StrictRequire</code>
<p>
Esto <em>fuerza</em> acceso prohibido cuando <code>SSLRequireSSL</code> o
<code>SSLRequire</code> deciden satisfactoriamente que el acceso deber&iacute;a
denegarse. Generalmente por defecto en el caso donde se usa una
directiva ``<code>Satisfy any</code>'', y se pasan otras restricciones de
acceso, se sobreescribe la denegaci&oacute;n del acceso debido a
<code>SSLRequireSSL</code> o <code>SSLRequire</code> (porque as&iacute; es como
deber&iacute;a funcionar el mecanismo <code>Satisfy</code> de Apache .) Pero para
la restricci&oacute;n estricta de acceso puede usar <code>SSLRequireSSL</code> y/o
<code>SSLRequire</code> en combinaci&oacute;n con un
``<code>SSLOptions +StrictRequire</code>''. Entonces un
``<code>Satisfy Any</code>'' adicional no tiene oportunidad una vez que
mod_ssl ha decidido denegar el acceso.</p>
</li>
<li><code>OptRenegotiate</code>
<p>
Esto activa la gesti&oacute;n optimizada de renegociaci&oacute;n de conexi&oacute;n SSL cuando
se usan directivas SSL en contexto de directorio. Por defecto un esquema
estricto est&aacute; habilitado donde <em>cada</em> reconfiguraci&oacute;n de directorio de
par&aacute;metros SSL provoca una renegociaci&oacute;n <em>total</em> del saludo SSL.
Cuando se usa esta opci&oacute;n mod_ssl intenta evitar saludos SSL innecesarios
haciendo comprobaciones m&aacute;s espec&iacute;ficas (pero todav&iacute;a seguras) de par&aacute;metros.
Sin embargo estas comprobaciones m&aacute;s espec&iacute;ficas pueden no ser lo que espera
el usuario, as&iacute; que, lo recomendable es que active &eacute;sto s&oacute;lo en contexto
directorio.</p>
</li>
<li><code>LegacyDNStringFormat</code>
<p>
Esta opci&oacute;n influencia c&oacute;mo se formatean los valores de las variables
<code>SSL_{CLIENT,SERVER}_{I,S}_DN</code>. Desde la versi&oacute;n 2.3.11, Apache
HTTPD usa un formato compatible RFC 2253 por defecto. Esto usa comas como
delimitadores entre atributos, permite el uso de caracteres no-ASCII (que
son convertidos a UTF-8), escapa varios caracteres especiales con barra
invertida "\", y ordena los atributos con el atributo "C" al final.</p>
<p>Si se activa <code>LegacyDNStringFormat</code>, el formato antiguo
que ordena el atributo "C" el primero ser&aacute; utilizado, usa barras como
separadores y no manipula caracteres no-ASCII y especiales de ninguna forma
consistente.
</p>
</li>
</ul>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLOptions +FakeBasicAuth -StrictRequire
&lt;Files ~ "\.(cgi|shtml)$"&gt;
SSLOptions +StdEnvVars -ExportCertData
&lt;/Files&gt;</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslpassphrasedialog">Directiva <span id="SSLPassPhraseDialog">SSLPassPhraseDialog</span> <a title="Enlace permanente" href="#sslpassphrasedialog" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Tipo de d&iacute;alogo de solicitud de contrase&ntilde;a para claves privadas
encriptadas</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLPassPhraseDialog <em>tipo</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLPassPhraseDialog builtin</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Cuando Apache arranca tiene que leer varios ficheros Certificado (vea
<code class="directive"><a href="#sslcertificatefile">SSLCertificateFile</a></code>) y Clave Privada
(vea
<code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code>) de los servidores
virtuales que tienen SSL activado. Por razones de seguridad los ficheros
de clave privada est&aacute;n generalmente cifrados, mod_ssl necesita preguntar al
administrador por la contrase&ntilde;a para desencriptar esos ficheros. Esta solicitud
puede hacerse de dos maneras que se pueden configurar por
<em>tipo</em>:</p>
<ul>
<li><code>builtin</code>
<p>
Este es el m&eacute;todo por defecto donde una ventana de terminal interactiva
aparece al inicio antes que Apache pase a segundo plano. Aqu&iacute; un
administrador tiene que introducir manualmente la contrase&ntilde;a para cada
fichero de Clave Privada cifrado. Puesto que puede haber muchos
hosts virtuales configurados con SSL, se usa el siguiente esquema de
reutilizaci&oacute;n para minimizar el n&uacute;mero de veces que se pide la contrase&ntilde;a:
Cuanto un fichero de clave privada est&aacute; encriptado, se intentar&aacute; usar
todas las Contrase&ntilde;as conocidas (al principio no hay ninguna, por supuesto).
Si una de esas contrase&ntilde;as conocidas funciona no se abre ventana de di&aacute;logo
para este fichero de clave privada en particular. Si ninguna funciona,
se vuelve a solicitar la contrase&ntilde;a en la terminal y se recuerda para las
siguientes (donde quiz&aacute;s se pueden reutilizar).</p>
<p>
Este esquema permite a mod_ssl ser flexible al m&aacute;ximo (porque para N
ficheros de Clave Privada cifrados <em>usted puede</em> usar N
contrase&ntilde;as diferentes - pero entonces tiene que introducir todas ellas, por
supuesto) al mismo tiempo que se minimizan las solicitudes de contrase&ntilde;a
por terminal (p.ej. cuando usa una sola contrase&ntilde;a para todos los N ficheros
de Clave Privada esta contrase&ntilde;a s&oacute;lo se pide una vez).</p></li>
<li><code>|/path/to/program [args...]</code>
<p>Este modo permite que se use un programa externo que act&uacute;a como tuber&iacute;a a
un dispositivo de entrada en particular; al programa se le env&iacute;a la
solicitud est&aacute;ndar de texto que se usa para el modo <code>builtin</code> en
<code>stdin</code>, y se espera que escriba cadenas de caracteres de
contrase&ntilde;as en <code>stdout</code>. Si se necesitan varias contrase&ntilde;as (o si
se introduce una contrase&ntilde;a incorrecta), se escribir&aacute;n solicitudes de
contrase&ntilde;a adicionales y se tendr&aacute; que devolver m&aacute;s contrase&ntilde;as a trav&eacute;s
de dicho programa.</p></li>
<li><code>exec:/path/to/program</code>
<p>
Aqu&iacute; se configura un programa externo que se lanza en el arranque para cada
uno de los ficheros de Clave Privada encriptados. Se le llama con un s&oacute;lo
par&aacute;metro, una cadena de caracteres de la forma
``<code>servername:portnumber:index</code>'' (cuando <code>index</code> es
un n&uacute;mero basado en una secuencia de ceros), que indica para qu&eacute; servidor,
puerto TCP y n&uacute;mero de certificado debe imprimir la Contrase&ntilde;a
correspondiente a <code>stdout</code>. La intenci&oacute;n es que este programa
externo primero ejecuta comprobaciones de seguridad para asegurar que el
sistema no se ha visto comprometido por un atacante, y s&oacute;lo cuando estas
comprobaciones se realizan satisfactoriamente entonces facilita la
Contrase&ntilde;a.</p>
<p>
Ambas comprobaciones de seguridad y el m&eacute;todo en que se determina la
contrase&ntilde;a, puede ser tan complejo como usted desee. Mod_ssl s&oacute;lo define
el interfaz: un programa ejecutable que provee la contrase&ntilde;a en
<code>stdout</code>. Ni m&aacute;s y ni menos. As&iacute; que, si usted es realmente
paranoico con la seguridad, este es su interfaz. Cualquier otra cosa se debe
dejar como un trabajo para el administrador, porque los requerimientos de
seguridad local son muy diferentes.</p>
<p>
El algoritmo de reutilizaci&oacute;n descrito previamente se usa aqu&iacute; tambi&eacute;n. En
otras palabras: se llama s&oacute;lo una vez al programa externo cuando hay una
&uacute;nica contrase&ntilde;a.</p></li>
</ul>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLPassPhraseDialog "exec:/usr/local/apache/sbin/pp-filter"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslpolicy">Directiva <span id="SSLPolicy">SSLPolicy</span> <a title="Enlace permanente" href="#sslpolicy" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Aplica una Pol&iacute;tica SSL por nombre</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLPolicy <em>nombre</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible en httpd 2.5.0 y posterior</td></tr>
</table>
<p>Esta directiva aplica el conjunto de directivas SSL definidas bajo
'nombre' (vea <code class="directive">&lt;SSLPolicyDefine&gt;</code>) como las
configuraciones <em>base</em> en el contexto actual. Apache viene con las
siguientes pol&iacute;ticas pre-definidas de Mozilla, los desarrolladores del
navegador Firefox
(<a href="https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations">
vea aqu&iacute; para una descripci&oacute;n detallada de ellas.</a>):
</p>
<ul>
<li><code>modern</code>: recomendada cuando su servidor es accesible desde
Internet. Funciona con todos los navegadores modernos, pero dispositivos
antiguos podr&iacute;an no ser capaces de conectar.</li>
<li><code>intermediate</code>: el recurso si necesita dar soporte a clientes
antiguos (pero no muy antiguos).</li>
<li><code>old</code>: cuando necesita dar acceso a Windows XP/Internet
Explorer 7. El &uacute;ltimo recurso.</li>
</ul>
<p>Puede comprobar una descripci&oacute;n detallada de todas las pol&iacute;ticas definidas
a trav&eacute;s de la l&iacute;nea de comandos:</p>
<div class="example"><h3>Listar Todas las Pol&iacute;ticas Definidas</h3><pre class="prettyprint lang-sh">httpd -t -D DUMP_SSL_POLICIES</pre>
</div>
<p>Una SSLPolicy define la l&iacute;nea base para el contexto en la que se utiliza. Eso
significa que cualquier otra directiva SSL en el mismo contexto la sobrescribir&aacute;.
Como ejemplo de esto, vea el valor efectivo de
<code class="directive">SSLProtocol</code> en la siguiente configuraci&oacute;n:</p>
<div class="example"><h3>Precedencia de Pol&iacute;tica</h3><pre class="prettyprint lang-config">&lt;VirtualHost...&gt; # efectivo en: 'all'
SSLPolicy modern
SSLProtocol all
&lt;/VirtualHost&gt;
&lt;VirtualHost...&gt; # efectivo en: 'all'
SSLProtocol all
SSLPolicy modern
&lt;/VirtualHost&gt;
SSLPolicy modern
&lt;VirtualHost...&gt; # efectivo en: 'all'
SSLProtocol all
&lt;/VirtualHost&gt;
SSLProtocol all
&lt;VirtualHost...&gt; # efectivo en: '+TLSv1.2'
SSLPolicy modern
&lt;/VirtualHost&gt;</pre>
</div>
<p>Puede haber m&aacute;s de una pol&iacute;tica aplicada en un contexto. La &uacute;ltimas
sobrescribiendo las previas: :</p>
<div class="example"><h3>Ordenando Pol&iacute;ticas</h3><pre class="prettyprint lang-config">&lt;VirtualHost...&gt; # protocolo efectivo: 'all -SSLv3'
SSLPolicy modern
SSLPolicy intermediate
&lt;/VirtualHost&gt;
&lt;VirtualHost...&gt; # protocolo efectivo: '+TLSv1.2'
SSLPolicy intermediate
SSLPolicy modern
&lt;/VirtualHost&gt;</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslprotocol">Directiva <span id="SSLProtocol">SSLProtocol</span> <a title="Enlace permanente" href="#sslprotocol" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Configura versiones de protocolo SSL/TLS utilizables</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProtocol [+|-]<em>protocol</em> ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLProtocol all -SSLv3</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Se puede usar esta directiva para controlar que versiones del protocolo SSL/TLS
ser&aacute;n aceptadas en las nuevas conexiones.</p>
<p>
Los <em>protocolos</em> disponibles (no sensibles a may&uacute;sculas) son:</p>
<ul>
<li><code>SSLv3</code>
<p>
Este es el protocolo de Secure Sockets Layer (SSL), versi&oacute;n 3.0, de la
empresa Netscape. Es el sucesor a SSLv2 y el predecesor de TLSv1, pero
se ha marcado ya como obsoleto en
<a href="http://www.ietf.org/rfc/rfc7568.txt">RFC 7568</a>.</p></li>
<li><code>TLSv1</code>
<p>
Este es el protocolo Transport Layer Security (TLS), versi&oacute;n 1.0.
Es el sucesor de SSLv3 y est&aacute; definido en
<a href="http://www.ietf.org/rfc/rfc2246.txt">RFC 2246</a>.
Est&aacute; soportado por casi cualquier cliente.</p></li>
<li><code>TLSv1.1</code> (cuando se usa OpenSSL 1.0.1 y posterior)
<p>
Una revisi&oacute;n del protocolo TLS 1.0, tal y como se define en
<a href="http://www.ietf.org/rfc/rfc4346.txt">RFC 4346</a>.</p></li>
<li><code>TLSv1.2</code> (cuando se usa OpenSSL 1.0.1 y posterior)
<p>
Una revisi&oacute;n del protocolo TLS 1.1, tal y como se define en
<a href="http://www.ietf.org/rfc/rfc5246.txt">RFC 5246</a>.</p></li>
<li><code>all</code>
<p>
Esto es un atajo para ``<code>+SSLv3 +TLSv1</code>'' o
- cuando se usa OpenSSL 1.0.1 y posterior -
``<code>+SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2</code>'', respectivamente
(excepto para versiones de OpenSSL compiladas con la opci&oacute;n de configuraci&oacute;n
``no-ssl3'', donde <code>all</code> no incluye <code>+SSLv3</code>).
</p></li>
</ul>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLProtocol TLSv1</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycacertificatefile">Directiva <span id="SSLProxyCACertificateFile">SSLProxyCACertificateFile</span> <a title="Enlace permanente" href="#sslproxycacertificatefile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Fichero de Certificados CA concatenados codificados en PEM para
la Autenticaci&oacute;n Remota del Servidor</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyCACertificateFile <em>ruta-al-fichero</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura el fichero <em>todo-en-uno</em> donde ensambla los
Certificados de Autoridades de Certificaci&oacute;n (CA) de los <em>servidores
remotos</em> a los que conecta. Estos se usan como Autenticaci&oacute;n de Servidor
Remoto. Tal fichero es simplemente la concatenaci&oacute;n de varios ficheros de
Certificado codificados en PEM en orden de preferencia. Esto se puede usar
alternativamente y/o adicionalmente a
<code class="directive"><a href="#sslproxycacertificatepath">SSLProxyCACertificatePath</a></code>.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLProxyCACertificateFile "/usr/local/apache2/conf/ssl.crt/ca-bundle-remote-server.crt"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycacertificatepath">Directiva <span id="SSLProxyCACertificatePath">SSLProxyCACertificatePath</span> <a title="Enlace permanente" href="#sslproxycacertificatepath" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Directorio de Certificados CA codificados en PEM para la
Autenticaci&oacute;n de Servidor Remoto</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyCACertificatePath <em>ruta-al-directorio</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura el directorio donde guarda los Certificados de
Autoridades de Certificaci&oacute;n (CAs) de los servidores remotos a los que conecta.
Estos se usan para verificar el certificado del servidor remoto en la
Autenticaci&oacute;n de Servidor Remoto.</p>
<p>
Los ficheros en este directorio tienen que estar codificados en PEM y se accede
a ellos a trav&eacute;s de nombres de ficheros con hash. As&iacute; que generalmente no puede
tan s&oacute;lo colocar los ficheros de Certificado ah&iacute;: tambi&eacute;n tiene que crear
enlaces simb&oacute;licos llamados <em>valor-de-hash</em><code>.N</code>. Y deber&iacute;a
asegurarse siempre de que este directorio contiene los enlaces s&iacute;mb&oacute;licos
apropiados.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLProxyCACertificatePath "/usr/local/apache2/conf/ssl.crt/"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycarevocationcheck">Directiva <span id="SSLProxyCARevocationCheck">SSLProxyCARevocationCheck</span> <a title="Enlace permanente" href="#sslproxycarevocationcheck" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Activa la comprobaci&oacute;n de revocaci&oacute;n basada en CRL para la
Autenticaci&oacute;n Remota de Servidor</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyCARevocationCheck chain|leaf|none</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLProxyCARevocationCheck none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Activa la comprobaci&oacute;n de listas de revocaci&oacute;n de certificado (CRL) para
los <em>servidores remotos</em> a los que conecta. Al menos una de las directivas
<code class="directive"><a href="#sslproxycarevocationfile">SSLProxyCARevocationFile</a></code>
o <code class="directive"><a href="#sslproxycarevocationpath">SSLProxyCARevocationPath</a></code> debe estar
configurada. Cuando se configura a <code>chain</code> (configuraci&oacute;n recomendada),
las comprobaciones de CRL se aplican a todos los certificados en la cadena de
certificaci&oacute;n, mientras que configur&aacute;ndolo a <code>leaf</code> limita las
comprobaciones al certificado firmado final.
</p>
<div class="note">
<h3>Cuando se configura a <code>chain</code> o <code>leaf</code>,
las CRLs <em>deben</em> estar disponibles para la validaci&oacute;n con &eacute;xito.</h3>
<p>
Antes de la versi&oacute;n 2.4.15, la comprobaci&oacute;n de CRL en mod_ssl tambi&eacute;n ten&iacute;a
&eacute;xito cuando no se encontraban CRLs en ninguna de las ubicaciones configuradas
con <code class="directive"><a href="#sslproxycarevocationfile">SSLProxyCARevocationFile</a></code>
o <code class="directive"><a href="#sslproxycarevocationpath">SSLProxyCARevocationPath</a></code>.
Con la introducci&oacute;n de esta directiva, el comportamiento ha cambiado: cuando
la comprobaci&oacute;n est&aacute; habilitada, las CRLs <em>deben</em> estar presentes para
que la validaci&oacute;n pueda tener &eacute;xito - si no fallar&aacute; con un error
<code>"unable to get certificate CRL"</code>.
</p>
</div>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLProxyCARevocationCheck chain</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycarevocationfile">Directiva <span id="SSLProxyCARevocationFile">SSLProxyCARevocationFile</span> <a title="Enlace permanente" href="#sslproxycarevocationfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Fichero de CRLs de CA codificados en PEM concatenados para la
Autenticaci&oacute;n Remota de Servidor</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyCARevocationFile <em>ruta-al-fichero</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura el fichero <em>todo-en-uno</em> donde puede ensamblar
las Listas de Revocaci&oacute;n de Certificados (CRL) de las Autoridades de
Certificaci&oacute;n (CA) de los <em>servidores remotos</em> a los que conecta. Estos
se usan para la Autenticaci&oacute;n Remota de Servidor. Tal fichero es simplemente la
concatenaci&oacute;n de varios ficheros CRL codificados en PEM, en orden de preferencia.
Esto se puede usar alternativamente a/o adicionalmente a
<code class="directive"><a href="#sslproxycarevocationpath">SSLProxyCARevocationPath</a></code>.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLProxyCARevocationFile "/usr/local/apache2/conf/ssl.crl/ca-bundle-remote-server.crl"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycarevocationpath">Directiva <span id="SSLProxyCARevocationPath">SSLProxyCARevocationPath</span> <a title="Enlace permanente" href="#sslproxycarevocationpath" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Directorio de CRLs de CA codificadas en PEM para la Autenticaci&oacute;n
Remota de Servidor</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyCARevocationPath <em>ruta-al-directorio</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura el directorio donde se alojan las Listas de Revocaci&oacute;n de
Certificado (CRL) de las Autoridades de Certificaci&oacute;n (CA) de los servidores a
los que conecta. Estas se usan para revocar el certificado del servidor remoto
en la Autenticaci&oacute;n del Servidor Remoto.</p>
<p>
Los ficheros en este directorio tienen que ser codificados en PEM y se acceden
con nombres de ficheros con hash. As&iacute; que generalmente no s&oacute;lo tiene que poner
los ficheros CRL ah&iacute;. Tambi&eacute;n tiene que crear enlaces simb&oacute;licos llamados
<em>valor-de-hash</em><code>.rN</code>. Y siempre deber&iacute;a asegurarse de que este
directorio tiene los enlaces simb&oacute;licos apropiados.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLProxyCARevocationPath "/usr/local/apache2/conf/ssl.crl/"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycheckpeercn">Directiva <span id="SSLProxyCheckPeerCN">SSLProxyCheckPeerCN</span> <a title="Enlace permanente" href="#sslproxycheckpeercn" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Comprobar el campo CN del certificado del servidor remoto
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyCheckPeerCN on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLProxyCheckPeerCN on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura si se debe comparar el campo CN del certificado del
servidor remoto contra el nombre de host de la URL solicitada. Si ambos no son
iguales se env&iacute;a un c&oacute;digo de estado 502 (Bad Gateway).
<code>SSLProxyCheckPeerCN</code> ha sido sustituido por
<code class="directive"><a href="#sslproxycheckpeername">SSLProxyCheckPeerName</a></code> en la versi&oacute;n
2.4.5 y posterior.
</p>
<p>
En todas las versiones desde 2.4.5 hasta 2.4.20, configurar
<code>SSLProxyCheckPeerName off</code> era suficiente para activar este
comportamiento (puesto que el valor por defecto de
<code>SSLProxyCheckPeerCN</code> era <code>on</code>.) En estas versiones, ambas
directivas deben configurarse a <code>off</code> para evitar completamente que
se valide el nombre del certificado del servidor remoto. Muchos usuarios
reportaron que esto es bastante confuso.
</p>
<p>
Desde la versi&oacute;n 2.4.21, todas las configuraciones que permiten una de las
opciones <code>SSLProxyCheckPeerName</code> o <code>SSLProxyCheckPeerCN</code>
usar&aacute;n el nuevo comportamiento de
<code class="directive"><a href="#sslproxycheckpeername">SSLProxyCheckPeerName</a></code>, y todas las
configuraciones que deshabilitan una de las opciones de
<code>SSLProxyCheckPeerName</code> o <code>SSLProxyCheckPeerCN</code>
suprimir&aacute;n la validaci&oacute;n del nombre del certificado del servidor remoto. s&oacute;lo
la siguiente configuraci&oacute;n habilitar&aacute; la comparaci&oacute;n antigua del CN en 2.4.21 y
versiones posteriores;
</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLProxyCheckPeerCN on
SSLProxyCheckPeerName off</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycheckpeerexpire">Directiva <span id="SSLProxyCheckPeerExpire">SSLProxyCheckPeerExpire</span> <a title="Enlace permanente" href="#sslproxycheckpeerexpire" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Comprobar si el certificado del servidor remoto est&aacute; expirado
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyCheckPeerExpire on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLProxyCheckPeerExpire on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura si se debe comprobar si el certificado del servidor
remoto est&aacute; expirado o no. Si la comprobaci&oacute;n falla se devuelve un error 502
(Bad Gateway).
</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLProxyCheckPeerExpire on</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxycheckpeername">Directiva <span id="SSLProxyCheckPeerName">SSLProxyCheckPeerName</span> <a title="Enlace permanente" href="#sslproxycheckpeername" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Configure comprobaci&oacute;n de nombre de host para certificados de
servidor remoto
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyCheckPeerName on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLProxyCheckPeerName on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Apache HTTP Server 2.4.5 and later</td></tr>
</table>
<p>
Esta directiva configura la comprobaci&oacute;n del nombre de host de certificados de
servidor cuando mod_ssl est&aacute; actuando como un cliente SSL. La comprobaci&oacute;n
tendr&aacute; &eacute;xito si el nombre de host de la petici&oacute;n coincide con uno de los
CN del sujeto del certificado, o coincide con la extensi&oacute;n subjectAltName. Si la
comprobaci&oacute;n falla, la petici&oacute;n SSL se aborta y se devuelve un c&oacute;digo de
estado 502.
</p>
<p>
Se soportan coincidencias con certificados wildcard para casos espec&iacute;ficos: una
entrada subjectAltName del tipo dNSName, o atributos CN que comienzan con
<code>*.</code> coincidir&aacute;n con cualquier nombre de host del mismo n&uacute;mero de
elementos de nombre y el mismo sufijo.
P. ej. <code>*.example.org</code> coincider&aacute; con <code>foo.example.org</code>,
pero no coincidir&aacute; con <code>foo.bar.example.org</code>, porque el n&uacute;mero de
elementos en el nombre de host respectivo es diferente.
</p>
<p>
Esta caracter&iacute;stica fue introducida en 2.4.5 y sustituye el comportamiento de
la directiva <code class="directive"><a href="#sslproxycheckpeercn">SSLProxyCheckPeerCN</a></code>, que
s&oacute;lo comprobaba el valor exacto en el primer atributo CN contra el nombre de
host. Sin embargo, muchos usuarios estaban confundidos por el comportamiento de
usar estas directivas individualmente, as&iacute; que el comportamiento mutuo de las
directivas <code>SSLProxyCheckPeerName</code> y <code>SSLProxyCheckPeerCN</code>
fue mejorado en la versi&oacute;n 2.4.21. Vea la descripci&oacute;n de la directiva
<code class="directive"><a href="#sslproxycheckpeercn">SSLProxyCheckPeerCN</a></code> para el
comportamiento original y detalles de estas mejoras.
</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxyciphersuite">Directiva <span id="SSLProxyCipherSuite">SSLProxyCipherSuite</span> <a title="Enlace permanente" href="#sslproxyciphersuite" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Conjunto de Cifrados disponibles para negociaci&oacute;n en el saludo SSL
de proxy</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyCipherSuite <em>especificaci&oacute;n-de-cifrado</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLProxyCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>Equivalente a <code class="directive"><a href="#sslciphersuite">SSLCipherSuite</a></code>, pero
para la conexi&oacute;n de proxy.
Por favor consulte <code class="directive"><a href="#sslciphersuite">SSLCipherSuite</a></code>
para informaci&oacute;n adicional.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxyengine">Directiva <span id="SSLProxyEngine">SSLProxyEngine</span> <a title="Enlace permanente" href="#sslproxyengine" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Interruptor de Operaci&oacute;n del Motor de Proxy SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyEngine on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLProxyEngine off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva activa el uso del motor de protocolo SSL/TLS para proxy. Esto
se usa actualmente dentro de una secci&oacute;n
<code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> para activar el
uso de proxy con SSL/TLS en un host virtual en particular. Por defecto el Motor
de Protocolo SSL/TLS est&aacute; desactivado para tanto el servidor principal como todos
los hosts virtuales.</p>
<p>Tenga en cuenta que la directiva <code class="directive">SSLProxyEngine</code> no
deber&iacute;a en general, ser incluida en un host virtual que actuar&aacute; como forward
proxy (usando las directivas
<code class="directive"><a href="../mod/mod_proxy.html#proxy">&lt;Proxy&gt;</a></code>
o <code class="directive"><a href="../mod/mod_proxy.html#proxyrequests">ProxyRequests</a></code>).
<code class="directive">SSLProxyEngine</code> no es necesario para activar un servidor
forward proxy para hacer proxy de peticiones SSL/TLS.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">&lt;VirtualHost _default_:443&gt;
SSLProxyEngine on
#...
&lt;/VirtualHost&gt;</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxymachinecertificatechainfile">Directiva <span id="SSLProxyMachineCertificateChainFile">SSLProxyMachineCertificateChainFile</span> <a title="Enlace permanente" href="#sslproxymachinecertificatechainfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Fichero de certificados CA concatenados y codificados en PEM para
ser usados por el proxy para elegir un certificado</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyMachineCertificateChainFile <em>ruta-al-fichero</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura el fichero todo-en-uno donde guarda la cadena de
certificados para todos los certificados cliente en uso. Esta directiva se
necesitar&aacute; si los servidores remotos presentan una lista de certificados CA
que no son firmantes directos de uno de los certificados cliente configurados.
</p>
<p>
Este fichero es simplemente la concatenciaci&oacute;n de varios ficheros de certificado
codificado en PEM. En el arranque, cada certificado cliente configurado ser&aacute;
examinado y se construir&aacute; una cadena de confianza.
</p>
<div class="warning"><h3>Aviso de Seguridad</h3>
<p>Si se activa esta directiva, se confiar&aacute; en todos los certificados en el
fichero como si tambi&eacute;n estuvieran en
<code class="directive"><a href="#sslproxycacertificatefile">SSLProxyCACertificateFile</a></code>.</p>
</div>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLProxyMachineCertificateChainFile "/usr/local/apache2/conf/ssl.crt/proxyCA.pem"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxymachinecertificatefile">Directiva <span id="SSLProxyMachineCertificateFile">SSLProxyMachineCertificateFile</span> <a title="Enlace permanente" href="#sslproxymachinecertificatefile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Fichero de certificados cliente codificados en PEM y claves para
ser usadas por el proxy</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyMachineCertificateFile <em>ruta-al-fichero</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura el fichero todo-en-uno donde guarda los certificados y
claves usadas para la autenticaci&oacute;n del servidor proxy en servidores remotos.
</p>
<p>
Este fichero es simplemente la concatenaci&oacute;n de varios ficheros de certificado
codificados en PEM, en orden de preferencia. Use esta directiva alternativamente
o adicionalmente a <code>SSLProxyMachineCertificatePath</code>.
</p>
<div class="warning">
<p>Actualmente no hay soporte para claves privadas encriptadas</p>
</div>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLProxyMachineCertificateFile "/usr/local/apache2/conf/ssl.crt/proxy.pem"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxymachinecertificatepath">Directiva <span id="SSLProxyMachineCertificatePath">SSLProxyMachineCertificatePath</span> <a title="Enlace permanente" href="#sslproxymachinecertificatepath" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Directorio de certificados cliente codificados en PEM y claves
para ser usadas por el proxy</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyMachineCertificatePath <em>directorio</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura el directorio donde se guardan los certificados y claves
usadas para la autenticaci&oacute;n del servidor proxy en servidores remotos.
</p>
<p>Los ficheros en este directorio deben ser codificados en PEM y accesibles
con nombres de ficheros con hash. Adem&aacute;s, debe crear enlaces simb&oacute;licos
llamados <code><em>valor-del-hash</em>.N</code>. Y siempre deber&iacute;a asegurarse
de que este directorio contiene los enlaces simb&oacute;licos apropiados.</p>
<div class="warning">
<p>Actualmente no hay soporte para claves privadas encriptadas</p>
</div>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLProxyMachineCertificatePath "/usr/local/apache2/conf/proxy.crt/"</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxyprotocol">Directiva <span id="SSLProxyProtocol">SSLProxyProtocol</span> <a title="Enlace permanente" href="#sslproxyprotocol" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Configure sabores de protocolo SSL utilizables para uso de
proxy</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyProtocol [+|-]<em>protocolo</em> ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLProxyProtocol all -SSLv3</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva puede usarse para controlar los sabores de protocolo SSL que
mod_ssl deber&iacute;a usar cuando establece si entorno de servidor para proxy. s&oacute;lo
conectar&aacute; con servidores usando uno de sus protocolos facilitados.</p>
<p>Por favor vea <code class="directive"><a href="#sslprotocol">SSLProtocol</a></code> para
informaci&oacute;n adicional.
</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxystoreuri">Directiva <span id="SSLProxyStoreURI">SSLProxyStoreURI</span> <a title="Enlace permanente" href="#sslproxystoreuri" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Proxy certificate and key stores</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyStoreURI <var>uri</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Available in httpd 2.5.1 and later, when linked with
OpenSSL v3 or later.</td></tr>
</table><p>The documentation for this directive has
not been translated yet. Please have a look at the English
version.</p></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxytrusturi">Directiva <span id="SSLProxyTrustURI">SSLProxyTrustURI</span> <a title="Enlace permanente" href="#sslproxytrusturi" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Proxy CA certificate store for Remote Server Auth</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyTrustURI <var>uri</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Available in httpd 2.5.1 and later, when linked with
OpenSSL v3 or later.</td></tr>
</table><p>The documentation for this directive has
not been translated yet. Please have a look at the English
version.</p></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxyverify">Directiva <span id="SSLProxyVerify">SSLProxyVerify</span> <a title="Enlace permanente" href="#sslproxyverify" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Tipo de verficaci&oacute;n de certificado del servidor remoto</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyVerify <em>level</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLProxyVerify none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>Cuando se configura un proxy para enviar peticiones a un servidor remoto SSL,
esta directiva se puede usar para configurar verificaci&oacute;n de certificado del
servidor remoto.</p>
<p>
Los siguientes niveles est&aacute;n disponibles para <em>nivel</em>:</p>
<ul>
<li><strong>none</strong>:
No se requiere Certificado del servidor remoto para nada</li>
<li><strong>optional</strong>:
el servidor remoto <em>puede</em> presentar un Certificado v&aacute;lido</li>
<li><strong>require</strong>:
el servidor remoto <em>tiene que</em> presenta un Certificado v&aacute;lido</li>
<li><strong>optional_no_ca</strong>:
el servidor remoto puede presentar un Certificado v&aacute;lido<br>
pero no tiene por qu&eacute; ser verificable (con &eacute;xito).</li>
</ul>
<p>En la pr&aacute;ctica s&oacute;lo los niveles <strong>none</strong> y
<strong>require</strong> son realmente interesantes, porque el nivel
<strong>optional</strong> no funciona en todos los servidores y el nivel
<strong>optional_no_ca</strong> va actualmente contra la idea de autenticaci&oacute;n
(pero se puede usar para establecer p&aacute;ginas de test SSL, etc.)</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLProxyVerify require</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslproxyverifydepth">Directiva <span id="SSLProxyVerifyDepth">SSLProxyVerifyDepth</span> <a title="Enlace permanente" href="#sslproxyverifydepth" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>M&aacute;xima profundidad de los Certificados CA en la verificaci&oacute;n del
Certificado en el Servidor Remoto</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLProxyVerifyDepth <em>number</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLProxyVerifyDepth 1</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, secci&oacute;n de proxy</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura hasta d&oacute;nde mod_ssl deber&iacute;a verificar antes de decidir
que el servidor remoto not tiene un certificado v&aacute;lido.</p>
<p>
La profundidad actualmente es el n&uacute;mero m&aacute;ximo de expedidores intermedios de
certificados, p. ej. el n&uacute;mero de certificados CA que se permiten seguir como
m&aacute;ximo para verificar el certificado del servidor remoto. Una profundidad de 0
sigifnica que s&oacute;lo se permiten certificados auto-firmados, la profundidad por
defecto de 1 significa que el servidor remoto puede ser autofirmado o fimado por
una CA que es directamente conocida por el servidor (p. ej. el certificado CA
bajo <code class="directive"><a href="#sslproxycacertificatepath">SSLProxyCACertificatePath</a></code>),
etc.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLProxyVerifyDepth 10</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslrandomseed">Directiva <span id="SSLRandomSeed">SSLRandomSeed</span> <a title="Enlace permanente" href="#sslrandomseed" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Fuente de generaci&oacute;n de semilla pseudoaleatoria de n&uacute;meros
(PRNG)</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLRandomSeed <em>contexto</em> <em>fuente</em>
[<em>bytes</em>]</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esto configura una o m&aacute;s fuentes de generaci&oacute;n de semilla pseudoaleatoria de
n&uacute;meros "Pseudo Random Number Generator (PRNG)" en OpenSSL en el arranque
(<em>contexto</em> es <code>startup</code>) y/o justo antes de que se
establezca una nueva conexi&oacute;n SSL
(<em>contexto</em> es <code>connect</code>). Esta directiva s&oacute;lo se puede usar
en el contexto global de configuraci&oacute;n del servidor porque PRNG es una
caracter&iacute;stica global.</p>
<p>
Las siguientes variante de <em>fuente</em> est&aacute;n disponibles:</p>
<ul>
<li><code>builtin</code>
<p>Esta es siempre la fuente de generaci&oacute;n de semilla que est&aacute; siempre
disponible. Usa el m&iacute;nimo de ciclos de CPU en tiempo real as&iacute; que se puede
usar siempre sin contratiempos. La fuente utilizada para la generaci&oacute;n de
semilla de PRNG contiene la hora actual, el id de proceso actual y
(cuando es aplicable) un extracto de 1KB escogido aleatoriamente de la
estructura de scoreboard de Apache. La pega es que no es realmente una
fuente muy compleja y en el momento del arranque (cuando el scoreboard
todav&iacute;a no est&aacute; disponible) esta fuente s&oacute;lo produce unos pocos bytes de
entrop&iacute;a. As&iacute; que usted deber&iacute;a, al menos en el arranque, usar una fuente
adicional de generaci&oacute;n de semilla.</p></li>
<li><code>file:/ruta/hacia/la/fuente</code>
<p>
Esta variante usa un fichero externo <code>/ruta/hacia/la/fuente</code> con
la fuente de generaci&oacute;n de semilla para PRNG. Cuando se especifica
<em>bytes</em>, s&oacute;lo los primeros <em>bytes</em> del n&uacute;mero de bytes del
fichero forman la entrop&iacute;a (y <em>bytes</em> se da a
<code>/ruta/hacia/la/fuente</code> como el primer par&aacute;metro). Cuando
no se especifica <em>bytes</em> el fichero al completo forma la entrop&iacute;a
(y <code>0</code> se da a <code>/ruta/hacia/la/fuente</code> como primer
par&aacute;metro). Use esto especialmente en el arranque, por ejemplo con
dispositivos disponibles <code>/dev/random</code> y/o
<code>/dev/urandom</code> (que generalmente existen en derivados de Unix
modernos como FreeBSD y Linux).</p>
<p>
<em>Pero tenga cuidado</em>: Generalmente <code>/dev/random</code> facilita
s&oacute;lo tantos datos de entrop&iacute;a como tiene en ese momento, p.ej. cuando solicita
512 bytes de entrop&iacute;a, pero el dispositivo s&oacute;lo tiene 100 bytes disponibles
dos cosas pasan: En algunas plataformas recibe s&oacute;lo 100 bytes mientras que
en otras plataformas la lectura se bloquea hasta que hay suficientes bytes
disponibles (lo cual puede llevar bastante tiempo). Aqu&iacute; usar un
<code>/dev/urandom</code> existente es mejor, porque nunca bloquea y porque
facilita la cantidad de datos solicitada. La pega es que la calidad de los
datos recibidos puede que no sea la mejor.</p></li>
<li><code>exec:/ruta/al/programa</code>
<p>
Esta variante usa un ejecutable externo
<code>/ruta/al/programa</code> como la fuente de generaci&oacute;n de semilla de
PRNG. Cuando se especifica <em>bytes</em>, s&oacute;lo los primeros
<em>bytes</em> del n&uacute;mero de bytes de su contenido de <code>stdout</code>
forman la entrop&iacute;a. Cuando no se especifica <em>bytes</em>, el total de los
datos producidos en <code>stdout</code> forman la entrop&iacute;a. Use esto s&oacute;lo
en el tiempo de arranque cuando necesita una generaci&oacute;n de semilla muy
compleja con la ayuda de un programa externo (como en el
ejemplo de m&aacute;s arriba con la utilidad <code>truerand</code> que puede
encontrar en la distribuci&oacute;n de mod_ssl que est&aacute; basada en la librer&iacute;a
<em>truerand</em> de AT&amp;T). Usar esto en contexto de conexi&oacute;n
ralentiza al servidor de manera dram&aacute;tica, por supuesto. As&iacute; que deber&iacute;a
evitar programas externos en ese contexto. </p></li>
<li><code>egd:/ruta/al/egd-socket</code> (S&oacute;lo Unix)
<p>
Esta variante usa el socket de dominio Unix del Demonio de Recolecci&oacute;n de
Entrop&iacute;a externo (Entropy Gathering Daemon (EGD)) (vea <a href="http://www.lothar.com/tech/crypto/">http://www.lothar.com/tech
/crypto/</a>) para generar semilla de PRNG. Use esto si no hay un
dispositivo de generaci&oacute;n de datos aleatorios en su sistema.</p></li>
</ul>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLRandomSeed startup builtin
SSLRandomSeed startup "file:/dev/random"
SSLRandomSeed startup "file:/dev/urandom" 1024
SSLRandomSeed startup "exec:/usr/local/bin/truerand" 16
SSLRandomSeed connect builtin
SSLRandomSeed connect "file:/dev/random"
SSLRandomSeed connect "file:/dev/urandom" 1024</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslrenegbuffersize">Directiva <span id="SSLRenegBufferSize">SSLRenegBufferSize</span> <a title="Enlace permanente" href="#sslrenegbuffersize" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Configure el tama&ntilde;o para el b&uacute;fer de renegociaci&oacute;n
SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLRenegBufferSize <var>bytes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLRenegBufferSize 131072</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>Si se requiere una renegociaci&oacute;n SSL por el contexto location, por ejemplo,
cualquier uso de <code class="directive"><a href="#sslverifyclient">SSLVerifyClient</a></code> en un
bloque Directory o Location, entonces <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> debe hacer b&uacute;fer
del cuerpo de la petici&oacute;n HTTP en memoria hasta que el nuevo saludo SSL
puede realizarse. Esta directiva se puede usar para especificar la cantidad
de memoria que se usar&aacute; para este b&uacute;fer.</p>
<div class="warning"><p>
Tenga en cuenta que en muchas configuraciones, el cliente enviando el cuerpo de
la petici&oacute;n no es confiable as&iacute; que se debe considerar un ataque de denegaci&oacute;n
de servicio por consumo de memoria cuando se cambie este valor de
configuraci&oacute;n.
</p></div>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLRenegBufferSize 262144</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslrequire">Directiva <span id="SSLRequire">SSLRequire</span> <a title="Enlace permanente" href="#sslrequire" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Permite acceso s&oacute;lo cuando una compleja expresi&oacute;n booleana
arbitrar&iacute;a es cierta</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLRequire <em>expresi&oacute;n</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<div class="note"><h3>SSLRequire est&aacute; obsoleta</h3>
<p><code>SSLRequire</code> est&aacute; obsoleta y deber&iacute;a en general ser sustituida por
<a href="mod_authz_core.html#reqexpr">Require expr</a>. La tal llamada
sintaxis de <a href="../expr.html">ap_expr</a> en <code>Require expr</code> es
la sustituci&oacute;n de la sintaxis de <code>SSLRequire</code>, con la siguiente
excepci&oacute;n:</p>
<p>En <code>SSLRequire</code>, los operadores de comparaci&oacute;n <code>&lt;</code>,
<code>&lt;=</code>, ... son equivalentes completamente a los operadores
<code>lt</code>, <code>le</code>, ... y funionan de una manera un tanto peculiar
que primero compara la longitud de dos cadenas de caracteres y despu&eacute;s el orden
l&eacute;xico. Por otro lado, <a href="../expr.html">ap_expr</a> tiene dos conjuntos
de operadores de comparaci&oacute;n: Los operadores <code>&lt;</code>,
<code>&lt;=</code>, ... hacen compraciones l&eacute;xicas de cadenas de caracteres,
mientras que los operadores <code>-lt</code>, <code>-le</code>, ... hacen
comparaci&oacute;n de n&uacute;meros integrales.
Para los &uacute;ltimos, tambi&eacute;n hay aliases sin el gui&oacute;n inicial:
<code>lt</code>, <code>le</code>, ...
</p>
</div>
<p>
Esta directiva especifica un requerimiento de acceso general que tiene
que pasarse para que se permita el acceso. Es una directiva muy vers&aacute;til porque
la especificaci&oacute;n del requerimiento es una compleja expresi&oacute;n booleana arbitraria
que contiene cualquier n&uacute;mero de comprobaciones.</p>
<p>
La <em>expresi&oacute;n</em> debe coincidir en la siguiente sintaxis (dada una notaci&oacute;n
gramatical BNF):</p>
<blockquote>
<pre>expr ::= "<strong>true</strong>" | "<strong>false</strong>"
| "<strong>!</strong>" expr
| expr "<strong>&amp;&amp;</strong>" expr
| expr "<strong>||</strong>" expr
| "<strong>(</strong>" expr "<strong>)</strong>"
| comp
comp ::= word "<strong>==</strong>" word | word "<strong>eq</strong>" word
| word "<strong>!=</strong>" word | word "<strong>ne</strong>" word
| word "<strong>&lt;</strong>" word | word "<strong>lt</strong>" word
| word "<strong>&lt;=</strong>" word | word "<strong>le</strong>" word
| word "<strong>&gt;</strong>" word | word "<strong>gt</strong>" word
| word "<strong>&gt;=</strong>" word | word "<strong>ge</strong>" word
| word "<strong>in</strong>" "<strong>{</strong>" wordlist "<strong>}</strong>"
| word "<strong>in</strong>" "<strong>PeerExtList(</strong>" word "<strong>)</strong>"
| word "<strong>=~</strong>" regex
| word "<strong>!~</strong>" regex
wordlist ::= word
| wordlist "<strong>,</strong>" word
word ::= digit
| cstring
| variable
| function
digit ::= [0-9]+
cstring ::= "..."
variable ::= "<strong>%{</strong>" varname "<strong>}</strong>"
function ::= funcname "<strong>(</strong>" funcargs "<strong>)</strong>"</pre>
</blockquote>
<p>Para <code>varname</code> se puede usar cualquiera de las variables descritas
en <a href="#envvars">Variables de Entorno</a>. Para
<code>funcname</code> las funciones disponibles est&aacute;n listadas en la
<a href="../expr.html#functions">documentaci&oacute;n de ap_expr</a>.</p>
<p>La <em>expresi&oacute;n</em> es interpretada dentro de una representaci&oacute;n interna
de m&aacute;quina cuando se carga la configuraci&oacute;n, y es despu&eacute;s evaluada durante
el procesamiento de la petici&oacute;n. En contexto .htaccess, la <em>expresi&oacute;n</em> es
en ambos casos interpretada y ejecutada cada vez que se encuentra un fichero
.htaccess durante el procesamiento de la petici&oacute;n.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \
and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
and %{TIME_WDAY} -ge 1 and %{TIME_WDAY} -le 5 \
and %{TIME_HOUR} -ge 8 and %{TIME_HOUR} -le 20 ) \
or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/</pre>
</div>
<p>La funci&oacute;n <code>PeerExtList(<em>object-ID</em>)</code> espera encontrar
cero o m&aacute;s instancias de la extensi&oacute;n de certificado X.509 identificadas por
un <em>ID de objecto</em> (OID) dado en el certificado cliente. La expresi&oacute;n
se eval&uacute;a a cierta si la cadena de caracteres de la izquierda coincide
exactamente contra el valor de la extensi&oacute;n identificada por este OID. (Si est&aacute;n
presentes m&uacute;ltiples extensiones con el mismo OID, al menos uno debe
coincidir).</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLRequire "foobar" in PeerExtList("1.2.3.4.5.6")</pre>
</div>
<div class="note"><h3>Notas sobre la funci&oacute;n PeerExtList</h3>
<ul>
<li><p>El ID de objeto puede ser especificado o bien como un
nombre descriptivo reconocido por la librer&iacute;a SSL, tal como
<code>"nsComment"</code>, o como un OID num&eacute;rico, tal como
<code>"1.2.3.4.5.6"</code>.</p></li>
<li><p>Expresiones con tipos conocidos para la librer&iacute;a SSL se expresan como una
cadena de caracteres antes de su comparaci&oacute;n. Para una extensi&oacute;n con un tipo no
reconocido por la librer&iacute;a SSL, mod_ssl interpretar&aacute; el valor si es uno de los
tipos primitivos ASN.1 types UTF8String, IA5String, VisibleString,
o BMPString. Para una extensi&oacute;n de uno de estos tipos, el valor de la cadena
de caracteres se convertir&aacute; en UTF-8 si es necesario, y entonces comparada
contra la expresi&oacute;n de la izquierda.</p></li>
</ul>
</div>
<h3>Consulte tambi&eacute;n</h3>
<ul>
<li><a href="../env.html">Variables de entorno en el Servidor HTTP
Apache</a>, para m&aacute;s ejemplos.
</li>
<li><a href="mod_authz_core.html#reqexpr">Require expr</a></li>
<li><a href="../expr.html">Sintaxis general de expresi&oacute;n en el Servidor
HTTP Apache</a>
</li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslrequiressl">Directiva <span id="SSLRequireSSL">SSLRequireSSL</span> <a title="Enlace permanente" href="#sslrequiressl" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Denegar el acceso cuando no se usa SSL para la petici&oacute;n
HTTP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLRequireSSL</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva prohibe el acceso a menos que est&eacute; habilitado HTTP sobre SSL
(p. ej. HTTPS) para la conexi&oacute;n en cuesti&oacute;n. Esto es muy &uacute;til dentro de
hosts virtuales con SSL activado o directorios, para defenderse de errores
de configuraci&oacute;n que exponen cosas que deber&iacute;an estar protegidas. Cuando esta
directiva est&aacute; presente todas las peticiones que no usen SSL son denegadas.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLRequireSSL</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslsessioncache">Directiva <span id="SSLSessionCache">SSLSessionCache</span> <a title="Enlace permanente" href="#sslsessioncache" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Tipo de la Cach&eacute; global/interproceso de la sesi&oacute;n SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLSessionCache <em>tipo</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLSessionCache none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esto configura el tipo de almacenamiento para la Cache global/interproceso de
la sesi&oacute;n SSL. Esta cache es una caracter&iacute;stica opcional que acelera el
procesamiento de peticiones en paralelo. Para peticiones con el mismo
proceso de servidor (a trav&eacute;s de keep-alive HTTP), OpenSSL ya cachea la
informaci&oacute;n de sesi&oacute;n de SSL localmente. Pero puesto que los clientes modernos
solicitan im&aacute;genes y otros datos a trav&eacute;s de peticiones en paralelo
(generalmente hasta cuatro peticiones en paralelo es lo t&iacute;pico) esas peticiones
se sirven por procesos de servidor <em>diferentes</em>. Aqu&iacute; la cache de
inter-proceso ayuda para evitar saludos de sesi&oacute;n SSL innecesarios.</p>
<p>
Los cinto <em>tipos</em> de almacenamientos siguientes est&aacute;n soportados:</p>
<ul>
<li><code>none</code>
<p>Esto desactiva la Cache de Sesi&oacute;n de interproceso/global. Esto
repercutir&aacute; en un descenso de la velocidad notable y puede causar problemas
con ciertos navegadores, particularmente si est&aacute;n activados los certificados
cliente. Esta configuraci&oacute;n no se recomienda.</p></li>
<li><code>nonenotnull</code>
<p>Esto s&oacute;lo desactiva la Cache de Sesi&oacute;n de interproceso/global. Aun as&iacute; no
fuerza a OpenSSL a enviar ID de sesi&oacute;n no-nula para adaptarse a clientes
que requieren una.</p></li>
<li><code>dbm:/ruta/al/ficherodedatos</code>
<p>Esto hace uso del fichero de hash DBM en el disco local para sincronizar
las caches de memoria del OpenSSL de los procesos del servidor. Esta cach&eacute;
de sesi&oacute;n puede tener problemas de fiabilidad cuando hay carga alta. Para
usarla, aseg&uacute;rese de que
<code class="module"><a href="../mod/mod_socache_dbm.html">mod_socache_dbm</a></code> est&aacute; cargado.</p></li>
<li><code>shmcb:/ruta/al/ficherodedatos</code>[<code>(</code><em>tama&ntilde;o</em><code>)</code>]
<p>Esto hace uso del b&uacute;fer c&iacute;clico de alto rendimiento
(approx. <em>tama&ntilde;o</em> bytes de tama&ntilde;o) dentro de un segmento de memoria
compartida en RAM (establecida con <code>/ruta/al/ficherodedatos</code>)
para sincronizar las caches de memoria del OpenSSL local de los procesos del
servidor. Esta es la cach&eacute; de sesi&oacute;n recomendada. Para usarla, aseg&uacute;rese de
que <code class="module"><a href="../mod/mod_socache_shmcb.html">mod_socache_shmcb</a></code> est&aacute; cargado.</p></li>
<li><code>dc:UNIX:/ruta/al/socket</code>
<p>Esto hace uso de las librer&iacute;as de almacenamiento en cach&eacute; de sesi&oacute;n
distribuida.<a href="http://distcache.sourceforge.net/">distcache</a>.
El par&aacute;metro deber&iacute;a especificar la ubicaci&oacute;n del servidor o proxy para
ser usado con distcache usando sintaxis de direcci&oacute;n; por ejemplo,
<code>UNIX:/ruta/al/socket</code> especifica un socket de dominio UNIX
(t&iacute;picamente un proxy dc_client local);
<code>IP:server.example.com:9001</code> especifica una direcci&oacute;n IP. Para
usar esto, aseg&uacute;rese de que <code class="module"><a href="../mod/mod_socache_dc.html">mod_socache_dc</a></code> est&aacute;
cargado.</p></li>
</ul>
<div class="example"><h3>Ejemplos</h3><pre class="prettyprint lang-config">SSLSessionCache "dbm:/usr/local/apache/logs/ssl_gcache_data"
SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_gcache_data(512000)"</pre>
</div>
<p>El mutex <code>ssl-cache</code> se usa para serializar el acceso a la cache
de sesi&oacute;n para prevenir corrupci&oacute;n. Este mutex puede configurarse usando la
directiva <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code>.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslsessioncachetimeout">Directiva <span id="SSLSessionCacheTimeout">SSLSessionCacheTimeout</span> <a title="Enlace permanente" href="#sslsessioncachetimeout" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>N&uacute;mero de segundos antes de que la sesi&oacute;n SSL expira
en la Cache de Sesi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLSessionCacheTimeout <em>segundos</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLSessionCacheTimeout 300</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Aplica tambi&eacute;n al RFC 5077 de reanudaci&oacute;n de sesi&oacute;n en
Apache 2.4.10 o posterior</td></tr>
</table>
<p>
Esta directiva configura el tiemplo l&iacute;mite en segundos para la informaci&oacute;n
guardada en la cach&eacute; de sesi&oacute;n SSL de interproceso/global, la cach&eacute; de memoria
interna de OpenSSL y para las sesiones reanudadas por la reanudaci&oacute;n de sesi&oacute;n
de TLS (RFC 5077). Puede ponerse hasta un m&iacute;nimo de 15 para hacer pruebas, pero
deber&iacute;a configurarse con valores como 300 en entornos funcionales.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLSessionCacheTimeout 600</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslsessionticketkeyfile">Directiva <span id="SSLSessionTicketKeyFile">SSLSessionTicketKeyFile</span> <a title="Enlace permanente" href="#sslsessionticketkeyfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Clave persistente de encriptaci&oacute;n/desencriptaci&oacute;n para ticket de
sesi&oacute;n TLS</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLSessionTicketKeyFile <em>ruta-al-fichero</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible en httpd 2.4.0 y posterior, si se usaOpenSSL 0.9.8h o
posterior</td></tr>
</table>
<p>Opcionalmente configura una clave secreta para la encriptaci&oacute;n y
desencriptaci&oacute;n de tickets de sesi&oacute;n TLS, tal y como se define en
<a href="http://www.ietf.org/rfc/rfc5077.txt">RFC 5077</a>. Principalmente
adecuado para entornos clusterizados donde la informaci&oacute;n de sesiones TLS
deber&iacute;a ser compartida entre varios nodos. Para configuraciones de una sola
instancia http, es recomendable <em>no</em> configurar un fichero clave
de ticket, pero si depender de varias claves generadas (al azar) por mod_ssl
en el arranque, en su lugar.</p>
<p>El fichero clave de ticket debe contener 48 bytes de datos aleatorios,
preferiblemente credos de una fuente con alta entrop&iacute;a. En un sistema basado en
Unix, un fichero clave de ticket puede generarse como sigue:</p>
<div class="example"><p><code>
dd if=/dev/random of=/path/to/file.tkey bs=1 count=48
</code></p></div>
<p>Las claves de ticket deber&iacute;an rotarse (sustituirse) frecuentemente, puesto
que esta es la &uacute;nica forma de invalidar sesiones de ticket existentes - Openssl
actualmente no permite especificar un tiempo l&iacute;mite de validez de tickets. Una
nueva clave de ticket s&oacute;lo se usa despu&eacute;s de reiniciar el servidor web.
Todas las sesiones de tickets existentes son inv&aacute;lidas despu&eacute;s de un
reinicio.</p>
<div class="warning">
<p>El fichero clave de ticket contiene material sensible de claves y deber&iacute;a
protegerse con permisos de fichero de una manera similar a las que se deben
usar para los ficheros utilizados con
<code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code>.</p>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslsessiontickets">Directiva <span id="SSLSessionTickets">SSLSessionTickets</span> <a title="Enlace permanente" href="#sslsessiontickets" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Activa o desactiva el uso de tickets de sesi&oacute;n TLS</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLSessionTickets on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLSessionTickets on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible en httpd 2.4.11 y posterior, si se usa OpenSSL 0.9.8f
o posterior.</td></tr>
</table>
<p>Esta directiva permite activar o desactivar el uso de los tickets de sesi&oacute;n
TLS (RFC 5077).</p>
<div class="warning">
<p>Los tickets de sesi&oacute;n TLS se activan por defecto. Usarlos sin reiniciar el
servidor web con una frecuencia apropiada (p. ej. diariamente) compromete
un "forward secrecy" perfecto</p>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslsrpunknownuserseed">Directiva <span id="SSLSRPUnknownUserSeed">SSLSRPUnknownUserSeed</span> <a title="Enlace permanente" href="#sslsrpunknownuserseed" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Semilla de usuario desconocido SRP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLSRPUnknownUserSeed <em>cadenadecaracteres-secreta</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible en httpd 2.4.4 y posterior si se usa OpenSSL 1.0.1 o
posterior</td></tr>
</table>
<p>
Esta directiva configura la semilla usada para aparentar par&aacute;metros de usuario
SRP para usuarios desconocidos, para evitar dar a conocer si el usuario
facilitado existe, se especifica una cadena de caracteres secreta. Si no se usa
esta directiva, entonces Apache deolver&aacute; la alerta UNKNOWN_PSK_IDENTITY a
clientes que espcifican un nombre de usuario desconocido.
</p>
<div class="example"><h3>Ejemplo</h3><p><code>
SSLSRPUnknownUserSeed "secret"
</code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslsrpverifierfile">Directiva <span id="SSLSRPVerifierFile">SSLSRPVerifierFile</span> <a title="Enlace permanente" href="#sslsrpverifierfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Ruta hacia el fichero verificador SRP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLSRPVerifierFile <em>ruta-al-fichero</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible en httpd 2.4.4 y posterior si se usa OpenSSL 1.0.1 o
posterior</td></tr>
</table>
<p>
Esta directiva activa TLS-SRP y configura la ruta al fichero verificador
OpenSSL SRP (Secure Remote Password) que contiene nombres de usuario,
verificadores, salts y par&aacute;metros de grupo TLS-SRP.</p>
<div class="example"><h3>Ejemplo</h3><p><code>
SSLSRPVerifierFile "/ruta/al/fichero.srpv"
</code></p></div>
<p>
El fichero verificador puede generarse con la utilidad de l&iacute;nea de comandos
<code>openssl</code>:</p>
<div class="example"><h3>Creando el fichero verificador SRP</h3><p><code>
openssl srp -srpvfile passwd.srpv -userinfo "some info" -add username
</code></p></div>
<p> El valor dado con el par&aacute;metro opcional <code>-userinfo</code> est&aacute;
disponible en la variable de entorno de petici&oacute;n
<code>SSL_SRP_USERINFO</code>.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingcache">Directiva <span id="SSLStaplingCache">SSLStaplingCache</span> <a title="Enlace permanente" href="#sslstaplingcache" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Configura la cache del stapling de OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLStaplingCache <em>tipo</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible si se usa OpenSSL 0.9.8h o posterior</td></tr>
</table>
<p>Configura la cache utilizada para almacenar las respuestas OCSP que se
incluyen en el saludo TLS si
<code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> est&aacute; activada. La
coniguraci&oacute;n de la cache es obligatoria para el stapling the OCSP. Con la
excepci&oacute;n de <code>none</code> y <code>nonenotnull</code>, se da soporte a
los mismos tipos de almacenamiento que con
<code class="directive"><a href="#sslsessioncache">SSLSessionCache</a></code>.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingerrorcachetimeout">Directiva <span id="SSLStaplingErrorCacheTimeout">SSLStaplingErrorCacheTimeout</span> <a title="Enlace permanente" href="#sslstaplingerrorcachetimeout" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>N&uacute;mero de segundos antes de expirar respuestas inv&aacute;lidas en la
cache del stapling de OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLStaplingErrorCacheTimeout <em>segundos</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLStaplingErrorCacheTimeout 600</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible si se usa OpenSSL 0.9.8h o posterior</td></tr>
</table>
<p>Configura el tiempo l&iacute;mite en segundos antes de que las respuestas
<em>inv&aacute;lidas</em> en la cache de stapling OCSP (configuradas con
<code class="directive"><a href="#sslstaplingcache">SSLStaplingCache</a></code>) expiren. Para
configurar el tiempo l&iacute;mite de respuestas v&aacute;lidas, vea
<code class="directive"><a href="#sslstaplingstandardcachetimeout">SSLStaplingStandardCacheTimeout</a></code>.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingfaketrylater">Directiva <span id="SSLStaplingFakeTryLater">SSLStaplingFakeTryLater</span> <a title="Enlace permanente" href="#sslstaplingfaketrylater" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Sintetiza respuestas "tryLater" para consultas fallidas de stapling
de OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLStaplingFakeTryLater on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLStaplingFakeTryLater on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible si se usa OpenSSL 0.9.8h o posterior</td></tr>
</table>
<p>Cuando se activa y una consulta de stapling a un respondedor OCSP falla,
mod_ssl sintetizar&aacute; una respuesta "tryLater" para el cliente. s&oacute;lo efectiva si
<code class="directive"><a href="#sslstaplingreturnrespondererrors">SSLStaplingReturnResponderErrors</a></code>
tambi&eacute;n est&aacute; activada.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingforceurl">Directiva <span id="SSLStaplingForceURL">SSLStaplingForceURL</span> <a title="Enlace permanente" href="#sslstaplingforceurl" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Sobreescribe la URI especificada por el respondedor OCSP
especificada en la extensi&oacute;n AIA del certificado</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLStaplingForceURL <em>uri</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible si se usa OpenSSL 0.9.8h o posterior</td></tr>
</table>
<p>Esta directiva sobreescribe la URI de un respondedor OCSP obtenida de la
extensi&oacute;n authorityInfoAccess (AIA) del certificado.
Un uso potencial puede ser cuando se usa un proxy para hacer consultas OCSP.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingrespondertimeout">Directiva <span id="SSLStaplingResponderTimeout">SSLStaplingResponderTimeout</span> <a title="Enlace permanente" href="#sslstaplingrespondertimeout" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Tiempo m&aacute;ximo para las consultas de stapling de OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLStaplingResponderTimeout <em>segundos</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLStaplingResponderTimeout 10</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible si se usa OpenSSL 0.9.8h o posterior</td></tr>
</table>
<p>Esta opci&oacute;n configura el tiempo m&aacute;ximo para consultas a respondedores OCSP
cuando <code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> est&aacute; activada y
mod_ssl est&aacute; consultando a un respondedor por motivos de stapling de OCSP.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingresponsemaxage">Directiva <span id="SSLStaplingResponseMaxAge">SSLStaplingResponseMaxAge</span> <a title="Enlace permanente" href="#sslstaplingresponsemaxage" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Edad m&aacute;xima permitida para respuesta de stapling OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLStaplingResponseMaxAge <em>segundos</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLStaplingResponseMaxAge -1</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible si se usa OpenSSL 0.9.8h o posterior</td></tr>
</table>
<p>Esta opci&oacute;n configura la edad m&aacute;xima permitida ("frescura") cuando se
consideran las respuestas OCSP para stapling, p. ej. cuando
<code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> est&aacute; activada.
El valor por defecto (<code>-1</code>) no fuerza una edad m&aacute;xima, lo que
significa que las respuestas OCSP se consideran v&aacute;lidas mientras el valor del
campo <code>nextUpdate</code> est&aacute; en una fecha futura.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingresponsetimeskew">Directiva <span id="SSLStaplingResponseTimeSkew">SSLStaplingResponseTimeSkew</span> <a title="Enlace permanente" href="#sslstaplingresponsetimeskew" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Tiempo m&aacute;ximo permitido para la validaci&oacute;n del stapling
OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLStaplingResponseTimeSkew <em>segundos</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLStaplingResponseTimeSkew 300</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible si se usa OpenSSL 0.9.8h o posterior</td></tr>
</table>
<p>Esta opci&oacute;n configura el tiempo m&aacute;ximo de desviaci&oacute;n cuando mod_ssl comprueba
los campos <code>thisUpdate</code> y <code>nextUpdate</code> de las respuestas
OCSP que se incluyen en el saludo TLS (Stapling de OCSP). s&oacute;lo aplicable si
<code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> est&aacute; activada.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingreturnrespondererrors">Directiva <span id="SSLStaplingReturnResponderErrors">SSLStaplingReturnResponderErrors</span> <a title="Enlace permanente" href="#sslstaplingreturnrespondererrors" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Pasa los errores relacionados con stapling de OCSP al cliente
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLStaplingReturnResponderErrors on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLStaplingReturnResponderErrors on</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible si se usa OpenSSL 0.9.8h o posterior</td></tr>
</table>
<p>Cuando se activa, mod_ssl pasar&aacute; las respuestas de consultas sin &eacute;xito
relacionadas con el stapling OCSP (tales como respuestas con un estado general
que no sea otro que "con &eacute;xito", respuestas con un estado de certificado que no
sea otro que "bueno", respuestas de expirado, etc.) al cliente.
Si la configura a <code>off</code>, s&oacute;lo respuestas indicando un estado de
certificado "bueno" se incluir&aacute;n en el saludo TLS.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstaplingstandardcachetimeout">Directiva <span id="SSLStaplingStandardCacheTimeout">SSLStaplingStandardCacheTimeout</span> <a title="Enlace permanente" href="#sslstaplingstandardcachetimeout" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>N&uacute;mero de segundos antes de expirar las respuestas en la cache del
stapling de OCSP</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLStaplingStandardCacheTimeout <em>segundos</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLStaplingStandardCacheTimeout 3600</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible si se usa OpenSSL 0.9.8h o posterior</td></tr>
</table>
<p>Configura el l&iacute;mite de tiempo en segundos antes de que las respuestas en el
cache de stapling de OCSP (configuradas con
<code class="directive"><a href="#sslstaplingcache">SSLStaplingCache</a></code>) expiren. Esta
directiva aplica a respuestas <em>v&aacute;lidas</em>, mientras que
<code class="directive"><a href="#sslstaplingerrorcachetimeout">SSLStaplingErrorCacheTimeout</a></code> se
usa para controlar el l&iacute;mite de tiempo para respuestas inv&aacute;lidas/indisponibles.
</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstoreuri">Directiva <span id="SSLStoreURI">SSLStoreURI</span> <a title="Enlace permanente" href="#sslstoreuri" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Server certificate and key store</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLStoreURI <var>uri</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Available in httpd 2.5.1 and later, when linked with
OpenSSL v3 or later.</td></tr>
</table><p>The documentation for this directive has
not been translated yet. Please have a look at the English
version.</p></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslstrictsnivhostcheck">Directiva <span id="SSLStrictSNIVHostCheck">SSLStrictSNIVHostCheck</span> <a title="Enlace permanente" href="#sslstrictsnivhostcheck" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Permitir o no a clientes no-SNI acceder a host virtuales basados
en nombre.
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLStrictSNIVHostCheck on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLStrictSNIVHostCheck off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura si un cliente no-SNI tiene permiso para acceder a un
host virtual basado en nombre. Si se configura a <code>on</code> en el host
virtual por defecto basado en nombre, los clientes que no son compatibles con
SNI no se les permitir&aacute; el acceso a <em>ning&uacute;n</em> host virtual que pertenezca
a esta combinaci&oacute;n de ip/puerto. Si se configura a <code>on</code> en cualquier
otro host virtual, los clientes no compatibles con SNI no tendr&aacute;n acceso a ese
host virtual en particular.
</p>
<div class="warning"><p>
Esta opci&oacute;n s&oacute;lo est&aacute; disponible si httpd fue compilado contra una versi&oacute;n
compatible con SNI de OpenSSL.
</p></div>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLStrictSNIVHostCheck on</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="ssltrustrequesturi">Directiva <span id="SSLTrustRequestURI">SSLTrustRequestURI</span> <a title="Enlace permanente" href="#ssltrustrequesturi" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>certificate store of CA Certificates for defining
acceptable CA names</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLTrustRequestURI <var>uri</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table><p>The documentation for this directive has
not been translated yet. Please have a look at the English
version.</p></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="ssltrusturi">Directiva <span id="SSLTrustURI">SSLTrustURI</span> <a title="Enlace permanente" href="#ssltrusturi" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Server CA certificate store for Client Authentication</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLTrustURI <var>uri</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Available in httpd 2.5.1 and later, when linked with
OpenSSL v3 or later.</td></tr>
</table><p>The documentation for this directive has
not been translated yet. Please have a look at the English
version.</p></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslusername">Directiva <span id="SSLUserName">SSLUserName</span> <a title="Enlace permanente" href="#sslusername" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Nombre de variable para determinar el nombre de usuario</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLUserName <em>nombre de variable</em></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura el campo "usuario" en el objeto de solicitud de Apache.
Esto se usa por m&oacute;dulos menores para identificar el usuario con una cadena
de caracteres. En particular esto puede causar que la variable de entorno
<code>REMOTE_USER</code> sea configurada. El <em>nombre de variable</em> puede
ser cualquiera de las <a href="#envvars">variables de entorno SSL</a>.</p>
<p>Cuando se activa la opci&oacute;n <code>FakeBasicAuth</code>, esta directiva
controla en su lgar el valor del nombre de usuario embebido dentro de la
cabecera de autenticaci&oacute;n b&aacute;sica (vea <a href="#ssloptions">SSLOptions</a>).</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLUserName SSL_CLIENT_S_DN_CN</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslusestapling">Directiva <span id="SSLUseStapling">SSLUseStapling</span> <a title="Enlace permanente" href="#sslusestapling" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Activa stapling de las respuestas OCSP en el saludo
TLS</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLUseStapling on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLUseStapling off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Disponible si se usa OpenSSL 0.9.8h o posterior</td></tr>
</table>
<p>Esta opci&oacute;n activa el stapling de OCSP, tal y como se define en la extensi&oacute;n
TLS "Solicitud de Estado de Certificado" especificada en el RFC 6066. Si est&aacute;
activado (y solicitado por el cliente), mod_ssl incluir&aacute; una respuesta OCSP de
su propio certificado en el saludo TLS. Configurar una
<code class="directive"><a href="#sslstaplingcache">SSLStaplingCache</a></code> es un pre-requisito para
activar stapling de OCSP.</p>
<p>El stapling de OCSP releva al cliente de consultar el respondedor OCSP por si
mismo, pero deber&iacute;a tenerse en cuenta que con la especificaci&oacute;n RFC 6066, la
respuesta de <code>CertificateStatus</code> del servidor podr&iacute;a s&oacute;lo incluir
una respuesta OCSP de un s&oacute;lo certificado. Para los certificados de servidor
con certificados de CA intermedias en su cadena (lo t&iacute;pico hoy en d&iacute;a),
stapling en su implementaci&oacute;n actual por tanto s&oacute;lo consigue su objetivo
parcialmente de "ahorrar varias peticiones y consumo de recursos" - vea tambi&eacute;n
el <a href="http://www.ietf.org/rfc/rfc6961.txt">RFC 6961</a>
(Extensi&oacute;n de TLS del Estado de M&uacute;ltiples Certificados).
</p>
<p>Cuando el stapling de OCSP est&aacute; activado, se usa el mutex
<code>ssl-stapling</code> para controlar el acceso a la cahe de stapling de OCSP
para prevenir corrupci&oacute;n, y se usa el mutex <code>sss-stapling-refresh</code>
para controlar los refrescos a las respuestas OCSP. Estos mutexes pueden ser
configurados usando la directiva
<code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code>.
</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslverifyclient">Directiva <span id="SSLVerifyClient">SSLVerifyClient</span> <a title="Enlace permanente" href="#sslverifyclient" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Tipo de verificaci&oacute;n de Certificado Cliente</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLVerifyClient <em>nivel</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLVerifyClient none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura el nivel de verificaci&oacute;n de Certificado para la
Autenticaci&oacute;n de Cliente. Tenga en cuenta que esta directiva se puede usar tanto
en contexto servidor como en contexto directorio. En contexto de servidor se
aplica al proceso de autenticaci&oacute;n de cliente usado en el saludo est&aacute;ndar de SSL
cuando se establece una conexi&oacute;n. En el contexto directorio fuerza una
renegociaci&oacute;n SSL con el nivel de verificaci&oacute;n reconfigurado despu&eacute;s de que se
lee la petiic&oacute;n HTTP pero antes de que se responda la respuesta HTTP.</p>
<p>
Los siguientes niveles est&aacute;n disponibles para <em>nivel</em>:</p>
<ul>
<li><strong>none</strong>:
no se requiere Certificado cliente ninguno</li>
<li><strong>optional</strong>:
el cliente <em>puede</em> presentar un Certificado v&aacute;lido</li>
<li><strong>require</strong>:
el cliente <em>tiene que</em> presentar un Certificado v&aacute;lido</li>
<li><strong>optional_no_ca</strong>:
el cliente puede presentar un Certificado v&aacute;lido<br>
pero no tiene por qu&eacute; ser verificable (satisfactoriamente). No se puede
depender de esta opci&oacute;n para la autenticaci&oacute;n de cliente. </li>
</ul>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLVerifyClient require</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslverifydepth">Directiva <span id="SSLVerifyDepth">SSLVerifyDepth</span> <a title="Enlace permanente" href="#sslverifydepth" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Profundidad m&aacute;xima de Certificados CA en la verificaci&oacute;n de
Certificado Cliente</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLVerifyDepth <em>number</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLVerifyDepth 1</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Anula:</a></th><td>AuthConfig</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
</table>
<p>
Esta directiva configura hasta qu&eacute; nivel debe mod_ssl verificar antes de decidir
cuando los clientes no tienen un certificado v&aacute;lido. Tenga en cuenta que esta
directiva puede usarse tanto en contexto servidor como en contexto directorio.
En contexto servidor se aplica al proceso de autenticaci&oacute;n de cliente en el
salido SSL est&aacute;ndar cuando se establece una conexi&oacute;n. En el contexto directorio
fuerza una renegociaci&oacute;n SSL con la profundidad de verficiaci&oacute;n de cliente
reconfigurada despu&eacute;s de que se lea la petici&oacute;n HTTP pero antes de que s&eacute; haya
enviado la respuesta HTTP.</p>
<p>
La profundidad es en realidad el n&uacute;mero m&aacute;ximo de certificados CA intermedios,
p. ej. el n&uacute;mero de certificados CA m&aacute;ximo permitido a seguir en la verificaci&oacute;n
del certificado cliente. Una profundidad de 0 significa que s&oacute;lo se
aceptan los certificados cliente autofirmados, la profundidad por defecto de 1
significa que el cliente puede ser autofirmado o tiene que estar firmado por una
CA que es directamente conocida por el servidor (p. ej. los certificados CA
est&aacute;n bajo
<code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>), etc.</p>
<div class="example"><h3>Ejemplo</h3><pre class="prettyprint lang-config">SSLVerifyDepth 10</pre>
</div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="sslvhostsnipolicy">Directiva <span id="SSLVHostSNIPolicy">SSLVHostSNIPolicy</span> <a title="Enlace permanente" href="#sslvhostsnipolicy" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Descripci&oacute;n:</a></th><td>Set compatibility policy for SNI client access to virtual hosts.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Sintaxis:</a></th><td><code>SSLVHostSNIPolicy strict|secure|authonly|insecure</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Valor por defecto:</a></th><td><code>SSLVHostSNIPolicy secure</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexto:</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">Estado:</a></th><td>Extensi&oacute;n</td></tr>
<tr><th><a href="directive-dict.html#Module">M&oacute;dulo:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilidad:</a></th><td>Available in httpd 2.4.66 and later</td></tr>
</table><p>The documentation for this directive has
not been translated yet. Please have a look at the English
version.</p></div>
</div>
<div class="bottomlang">
<p><span>Idiomas disponibles: </span><a href="../en/mod/mod_ssl.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/mod/mod_ssl.html" title="Espa&ntilde;ol">&nbsp;es&nbsp;</a> |
<a href="../fr/mod/mod_ssl.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Licencia bajo los t&eacute;rminos de la <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">M&oacute;dulos</a> | <a href="../mod/quickreference.html">Directivas</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Reportar un error</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
document.body.appendChild(qv);
var qvBtn = document.createElement('button');
qvBtn.className = 'qv-toggle';
qvBtn.setAttribute('aria-label', 'Toggle page navigation');
qvBtn.innerHTML = '&#9776;';
document.body.appendChild(qvBtn);
qvBtn.addEventListener('click', function() {
var isOpen = qv.classList.toggle('open');
if (isOpen) {
qv.style.top = window.scrollY + 10 + 'px';
}
});
window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>