| <?xml version="1.0"?> |
| <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> |
| <?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?> |
| <!-- English Revision: 1817381:1915680 (outdated) --> |
| <!-- Spanish Translation: Daniel Ferradal <dferradal@apache.org> --> |
| <!-- Updated and reviewed: Luis Gil de bernabe <lgilbernabe@apache.org> --> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <modulesynopsis metafile="mod_ssl.xml.meta"> |
| |
| <name>mod_ssl</name> |
| <description>Criptografí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)</description> |
| <status>Extension</status> |
| <sourcefile>mod_ssl.c</sourcefile> |
| <identifier>ssl_module</identifier> |
| |
| <summary> |
| <p>Este módulo ofrece soporte para SSL v3 y TLS v1.x para el Servidor Apache |
| HTTP. SSL v2 ya no está soportado.</p> |
| |
| <p>Este módulo depende de <a href="http://www.openssl.org/">OpenSSL</a> para |
| proveer el motor criptográfico.</p> |
| |
| <p>Se facilitan más detalles, discusión y ejemplos en la |
| <a href="../ssl/">documentación SSL</a>.</p> |
| </summary> |
| |
| <section id="envvars"><title>Variables de Entorno</title> |
| |
| <p>Este módulo puede ser configurado para proveer muchos elementos de información |
| SSL como variables de entorno adicionales para el espacio de nombres de SSI y |
| CGI. Esta información no se facilita por defecto por razones de rendimiento. |
| (Vea StdEnvVars de <directive>SSLOptions</directive> más adelante.) Las |
| variables generadas se listan en la tabla a continuación. Para |
| retrocompatibilidad la información también puede estar disponible bajo distintos |
| nombres. Vea el capítulo <a href="../ssl/ssl_compat.html">Compatibilidad</a> |
| para más detalles sobre las variables de compatibilidad.</p> |
| |
| <table border="1"> |
| <columnspec><column width=".3"/><column width=".2"/><column width=".5"/> |
| </columnspec> |
| <tr> |
| <th><a name="table3">Nombre de Variable:</a></th> |
| <th>Valor Tipo:</th> |
| <th>Descripción:</th> |
| </tr> |
| <tr><td><code>HTTPS</code></td> <td>flag</td> <td>Se está usando HTTPS.</td></tr> |
| <tr><td><code>SSL_PROTOCOL</code></td> <td>string</td> <td>El protocolo SSL versió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ón SSL codificado en hexadecimal</td></tr> |
| <tr><td><code>SSL_SESSION_RESUMED</code></td> <td>string</td> <td>Sesión SSL inicial o reanudada. Nota: múltiples peticiones pueden servirse a través de la misma sesión SSL (Inicial o Reanudada) si el KeepAlive de HTTP está en uso</td></tr> |
| <tr><td><code>SSL_SECURE_RENEG</code></td> <td>string</td> <td><code>true</code> si la renegociación segura está soportada, si no <code>false</code></td></tr> |
| <tr><td><code>SSL_CIPHER</code></td> <td>string</td> <td>El nombre de la especificació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úmero de bits de cifrado (en uso actualmente)</td></tr> |
| <tr><td><code>SSL_CIPHER_ALGKEYSIZE</code></td> <td>number</td> <td>Número de bits de cifrado (posibles)</td></tr> |
| <tr><td><code>SSL_COMPRESS_METHOD</code></td> <td>string</td> <td>Método de compresión SSL negociado</td></tr> |
| <tr><td><code>SSL_VERSION_INTERFACE</code></td> <td>string</td> <td>La versión de mod_ssl</td></tr> |
| <tr><td><code>SSL_VERSION_LIBRARY</code></td> <td>string</td> <td>La versión del programa OpenSSL</td></tr> |
| <tr><td><code>SSL_CLIENT_M_VERSION</code></td> <td>string</td> <td>La versió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ó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ó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ó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úmero de dí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ú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ú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ó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ó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ó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ó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ú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ón de usuario SRP</td></tr> |
| <tr><td><code>SSL_TLS_SNI</code></td> <td>string</td> <td>Contenido de la extensió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én puede incluir un sufijo <code>_n</code> |
| numérico. Si el DN en cuestión contiene múltiples atributos del mismo |
| nombre, este sufijo se usa para un índice basado en ceros para seleccionar |
| un atributo en particular. Por ejemplo, donde el sujeto del DN del |
| certificado del servidor incluirá dos atributos OU, |
| <code>SSL_SERVER_S_DN_OU_0</code> y |
| <code>SSL_SERVER_S_DN_OU_1</code> podrí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 único) atributo. |
| Cuando la tabla del entorno se llena usando la opción <code>StdEnvVars</code> |
| de la directiva <directive module="mod_ssl">SSLOptions</directive>, el primer |
| (o único) atributo de cualquier DN se añade sólo bajo un nombre sin sufijo; |
| p. ej. no se añaden entradas con sufijo <code>_0</code>.</p> |
| |
| <p>En httpd 2.5.0 y posterior, se puede añadir un sufijo <em>_RAW</em> a |
| <em>x509</em> en un componente DN para suprimir la conversión del valor |
| del atributo a UTF-8. Esto se debe colocar después del sufijo de indice (si lo |
| hay). Por ejemplo, se podrí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ón <code>LegacyDNStringFormat</code> para |
| <directive module="mod_ssl">SSLOptions</directive> para más detalles.</p> |
| |
| <p><code>SSL_CLIENT_V_REMAIN</code> sólo está disponible en la versión 2.1 y |
| posterior.</p> |
| |
| <p>Se puede usar varias variables de entorno adicionales con expresiones en |
| <directive>SSLRequire</directive>, o en formatos de log personalizados:</p> |
| |
| <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></note> |
| |
| <p>En estos contextos, también se pueden usar dos formatos especiales:</p> |
| |
| <dl> |
| <dt><code>ENV:<em>nombredevariable</em></code></dt> |
| <dd>Esto se rellenará al valor de la variable de entorno estándar |
| <em>nombredevariable</em>.</dd> |
| |
| <dt><code>HTTP:<em>nombredecabecera</em></code></dt> |
| <dd>Esto se rellenará con el valor de la cabecera de solicitud con el nombre |
| <em>nombredecabecera</em>.</dd> |
| </dl> |
| |
| </section> |
| |
| <section id="logformats"><title>Formatos de Log Personalizados</title> |
| |
| <p>Cuando se compila <module>mod_ssl</module> en Apache o al menos se carga (en |
| situación de DSO) existen funciones adicionales para el |
| <a href="mod_log_config.html#formats">Formatos de Log Personalizados</a> de |
| <module>mod_log_config</module>. Primero hay una función de extensión de formato |
| adicional ``<code>%{</code><em>varname</em><code>}x</code>'' que puede usarse |
| para extender cualquier variable facilitada por cualquier módulo, especialmente |
| aquellas que son facilitadas por mod_ssl que puede encontrar en la tabla de más |
| arriba.</p> |
| <p> |
| |
| Para retro compatibilidad adicionalmente se facilita una función de formato de |
| criptografía ``<code>%{</code><em>nombre</em><code>}c</code>''. Información sobre |
| esta función se facilita en capítulo de <a |
| href="../ssl/ssl_compat.html">Compatibilidad</a>.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| CustomLog "logs/ssl_request_log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" |
| </highlight> |
| </example> |
| <p>Estos formatos incluso funcionan sin la opción de configuración |
| <code>StdEnvVars</code> de la directiva |
| <directive module="mod_ssl">SSLOptions</directive>.</p> |
| </section> |
| |
| <section id="notes"><title>Notas de Solicitud</title> |
| |
| <p><module>mod_ssl</module> configura "notas" para la petición que pueden |
| usarse en el registro de logs con la cadena de caracteres |
| <code>%{<em>nombre</em>}n</code> en <module>mod_log_config</module>.</p> |
| |
| <p>A continuació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 <directive>SSLRequire</directive> o |
| <directive>SSLRequireSSL</directive>.</dd> |
| |
| <dt><code>ssl-secure-reneg</code></dt> |
| <dd>Si se compila <module>mod_ssl</module> con una versión de OpenSSL que |
| soporta la extensión de renegociación segura, esta nota se configura con el |
| valor <code>1</code> si se usa SSL para la conexión actual y el cliente |
| también soporta la extensión de renegociación segura. Si el cliente no |
| soporta la extensión de renegociación segura, esta nota se configura con el valor |
| <code>0</code>. |
| Si se compila <module>mod_ssl</module> con una versión de OpenSSL que no |
| soporta renegociación segura, o si SSL no se usa en la conexión actual, esta |
| nota no se configura.</dd> |
| </dl> |
| |
| </section> |
| |
| <section id="expressionparser"> |
| <title>Extensión Intérprete de Expresiones</title> |
| |
| <p>Cuando se compila <module>mod_ssl</module> en Apache o se carga |
| (bajo situación DSO) cualquier <a name="envvars">variable</a> |
| facilitada por <module>mod_ssl</module> puede usarse en expresiones para el |
| <a href="../expr.html">Inté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ón |
| 2.4.18 uno también puede usar el estilo de sintaxis de |
| <module>mod_rewrite</module> |
| ``<code>%{SSL:</code><em>nombredevariable</em><code>}</code>'' o el estilo de |
| sintaxis de la función |
| ``<code>ssl(</code><em>nombredevariable</em><code>)</code>''.</p> |
| |
| <example><title>Ejemplo (usando <module>mod_headers</module>)</title> |
| <highlight language="config"> |
| Header set X-SSL-PROTOCOL "expr=%{SSL_PROTOCOL}" |
| Header set X-SSL-CIPHER "expr=%{SSL:SSL_CIPHER}" |
| </highlight> |
| </example> |
| |
| <p>Esta característica funciona incluso sin configurar la opción |
| <code>StdEnvVars</code> de la directiva |
| <directive module="mod_ssl">SSLOptions</directive>.</p> |
| </section> |
| |
| <section id="authzproviders"><title>Proveedores de Autorización para su uso con |
| Require</title> |
| <p><module>mod_ssl</module> facilita unos pocos proveedores de autenticación |
| para usarse con la directiva <directive module="mod_authz_core">Require</directive> |
| de <module>mod_authz_core</module>.</p> |
| |
| <section id="reqssl"><title>Require ssl</title> |
| <p>El proveedor de <code>ssl</code> deniega el acceso si la conexión no está |
| encriptada con SSL. Esto es similar a la directiva |
| <directive>SSLRequireSSL</directive>.</p> |
| <highlight language="config"> |
| Require ssl |
| </highlight> |
| </section> |
| |
| <section id="reqverifyclient"><title>Require ssl-verify-client</title> |
| <p>El proveedor de <code>ssl</code> permite acceso si el usuario se autentica |
| con un certificado cliente válido. Esto sólo es útil si se está 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ña.</p> |
| <highlight language="config"> |
| Require ssl-verify-client |
| Require valid-user |
| </highlight> |
| |
| </section> |
| |
| </section> |
| |
| <directivesynopsis> |
| <name>SSLPassPhraseDialog</name> |
| <description>Tipo de díalogo de solicitud de contraseña para claves privadas |
| encriptadas</description> |
| <syntax>SSLPassPhraseDialog <em>tipo</em></syntax> |
| <default>SSLPassPhraseDialog builtin</default> |
| <contextlist><context>server config</context></contextlist> |
| |
| <usage> |
| <p> |
| Cuando Apache arranca tiene que leer varios ficheros Certificado (vea |
| <directive module="mod_ssl">SSLCertificateFile</directive>) y Clave Privada |
| (vea |
| <directive module="mod_ssl">SSLCertificateKeyFile</directive>) de los servidores |
| virtuales que tienen SSL activado. Por razones de seguridad los ficheros |
| de clave privada están generalmente cifrados, mod_ssl necesita preguntar al |
| administrador por la contraseñ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étodo por defecto donde una ventana de terminal interactiva |
| aparece al inicio antes que Apache pase a segundo plano. Aquí un |
| administrador tiene que introducir manualmente la contraseñ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ón para minimizar el número de veces que se pide la contraseña: |
| Cuanto un fichero de clave privada está encriptado, se intentará usar |
| todas las Contraseñas conocidas (al principio no hay ninguna, por supuesto). |
| Si una de esas contraseñas conocidas funciona no se abre ventana de diálogo |
| para este fichero de clave privada en particular. Si ninguna funciona, |
| se vuelve a solicitar la contraseña en la terminal y se recuerda para las |
| siguientes (donde quizás se pueden reutilizar).</p> |
| <p> |
| Este esquema permite a mod_ssl ser flexible al máximo (porque para N |
| ficheros de Clave Privada cifrados <em>usted puede</em> usar N |
| contraseñas diferentes - pero entonces tiene que introducir todas ellas, por |
| supuesto) al mismo tiempo que se minimizan las solicitudes de contraseña |
| por terminal (p.ej. cuando usa una sola contraseña para todos los N ficheros |
| de Clave Privada esta contraseña só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úa como tubería a |
| un dispositivo de entrada en particular; al programa se le envía la |
| solicitud está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ñas en <code>stdout</code>. Si se necesitan varias contraseñas (o si |
| se introduce una contraseña incorrecta), se escribirán solicitudes de |
| contraseña adicionales y se tendrá que devolver más contraseñas a través |
| de dicho programa.</p></li> |
| |
| <li><code>exec:/path/to/program</code> |
| <p> |
| Aquí 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ólo |
| parámetro, una cadena de caracteres de la forma |
| ``<code>servername:portnumber:index</code>'' (cuando <code>index</code> es |
| un número basado en una secuencia de ceros), que indica para qué servidor, |
| puerto TCP y número de certificado debe imprimir la Contraseña |
| correspondiente a <code>stdout</code>. La intenció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ólo cuando estas |
| comprobaciones se realizan satisfactoriamente entonces facilita la |
| Contraseña.</p> |
| |
| <p> |
| Ambas comprobaciones de seguridad y el método en que se determina la |
| contraseña, puede ser tan complejo como usted desee. Mod_ssl sólo define |
| el interfaz: un programa ejecutable que provee la contraseña en |
| <code>stdout</code>. Ni más y ni menos. Así 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ón descrito previamente se usa aquí también. En |
| otras palabras: se llama sólo una vez al programa externo cuando hay una |
| única contraseña.</p></li> |
| </ul> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLPassPhraseDialog "exec:/usr/local/apache/sbin/pp-filter" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLRandomSeed</name> |
| <description>Fuente de generación de semilla pseudoaleatoria de números |
| (PRNG)</description> |
| <syntax>SSLRandomSeed <em>contexto</em> <em>fuente</em> |
| [<em>bytes</em>]</syntax> |
| <contextlist><context>server config</context></contextlist> |
| |
| <usage> |
| <p> |
| Esto configura una o más fuentes de generación de semilla pseudoaleatoria de |
| nú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ón SSL |
| (<em>contexto</em> es <code>connect</code>). Esta directiva sólo se puede usar |
| en el contexto global de configuración del servidor porque PRNG es una |
| característica global.</p> |
| <p> |
| Las siguientes variante de <em>fuente</em> están disponibles:</p> |
| <ul> |
| <li><code>builtin</code> |
| <p>Esta es siempre la fuente de generación de semilla que está siempre |
| disponible. Usa el mínimo de ciclos de CPU en tiempo real así que se puede |
| usar siempre sin contratiempos. La fuente utilizada para la generació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ía no está disponible) esta fuente sólo produce unos pocos bytes de |
| entropía. Así que usted debería, al menos en el arranque, usar una fuente |
| adicional de generació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ón de semilla para PRNG. Cuando se especifica |
| <em>bytes</em>, sólo los primeros <em>bytes</em> del número de bytes del |
| fichero forman la entropía (y <em>bytes</em> se da a |
| <code>/ruta/hacia/la/fuente</code> como el primer parámetro). Cuando |
| no se especifica <em>bytes</em> el fichero al completo forma la entropía |
| (y <code>0</code> se da a <code>/ruta/hacia/la/fuente</code> como primer |
| pará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ólo tantos datos de entropía como tiene en ese momento, p.ej. cuando solicita |
| 512 bytes de entropía, pero el dispositivo sólo tiene 100 bytes disponibles |
| dos cosas pasan: En algunas plataformas recibe só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í 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ón de semilla de |
| PRNG. Cuando se especifica <em>bytes</em>, sólo los primeros |
| <em>bytes</em> del número de bytes de su contenido de <code>stdout</code> |
| forman la entropía. Cuando no se especifica <em>bytes</em>, el total de los |
| datos producidos en <code>stdout</code> forman la entropía. Use esto sólo |
| en el tiempo de arranque cuando necesita una generación de semilla muy |
| compleja con la ayuda de un programa externo (como en el |
| ejemplo de más arriba con la utilidad <code>truerand</code> que puede |
| encontrar en la distribución de mod_ssl que está basada en la librería |
| <em>truerand</em> de AT&T). Usar esto en contexto de conexión |
| ralentiza al servidor de manera dramática, por supuesto. Así que debería |
| evitar programas externos en ese contexto. </p></li> |
| |
| <li><code>egd:/ruta/al/egd-socket</code> (Sólo Unix) |
| <p> |
| Esta variante usa el socket de dominio Unix del Demonio de Recolección de |
| Entropí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ón de datos aleatorios en su sistema.</p></li> |
| </ul> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="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 |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLSessionCache</name> |
| <description>Tipo de la Caché global/interproceso de la sesión SSL</description> |
| <syntax>SSLSessionCache <em>tipo</em></syntax> |
| <default>SSLSessionCache none</default> |
| <contextlist><context>server config</context></contextlist> |
| |
| <usage> |
| <p> |
| Esto configura el tipo de almacenamiento para la Cache global/interproceso de |
| la sesión SSL. Esta cache es una característica opcional que acelera el |
| procesamiento de peticiones en paralelo. Para peticiones con el mismo |
| proceso de servidor (a través de keep-alive HTTP), OpenSSL ya cachea la |
| información de sesión de SSL localmente. Pero puesto que los clientes modernos |
| solicitan imágenes y otros datos a través de peticiones en paralelo |
| (generalmente hasta cuatro peticiones en paralelo es lo típico) esas peticiones |
| se sirven por procesos de servidor <em>diferentes</em>. Aquí la cache de |
| inter-proceso ayuda para evitar saludos de sesión SSL innecesarios.</p> |
| <p> |
| |
| Los cinto <em>tipos</em> de almacenamientos siguientes están soportados:</p> |
| <ul> |
| <li><code>none</code> |
| |
| <p>Esto desactiva la Cache de Sesión de interproceso/global. Esto |
| repercutirá en un descenso de la velocidad notable y puede causar problemas |
| con ciertos navegadores, particularmente si están activados los certificados |
| cliente. Esta configuración no se recomienda.</p></li> |
| |
| <li><code>nonenotnull</code> |
| |
| <p>Esto sólo desactiva la Cache de Sesión de interproceso/global. Aun así no |
| fuerza a OpenSSL a enviar ID de sesió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é |
| de sesión puede tener problemas de fiabilidad cuando hay carga alta. Para |
| usarla, asegúrese de que |
| <module>mod_socache_dbm</module> está cargado.</p></li> |
| |
| <li><code>shmcb:/ruta/al/ficherodedatos</code>[<code>(</code><em>tamaño</em><code>)</code>] |
| |
| <p>Esto hace uso del búfer cíclico de alto rendimiento |
| (approx. <em>tamaño</em> bytes de tamañ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é de sesión recomendada. Para usarla, asegúrese de |
| que <module>mod_socache_shmcb</module> está cargado.</p></li> |
| |
| <li><code>dc:UNIX:/ruta/al/socket</code> |
| |
| <p>Esto hace uso de las librerías de almacenamiento en caché de sesión |
| distribuida.<a href="http://distcache.sourceforge.net/">distcache</a>. |
| El parámetro debería especificar la ubicación del servidor o proxy para |
| ser usado con distcache usando sintaxis de dirección; por ejemplo, |
| <code>UNIX:/ruta/al/socket</code> especifica un socket de dominio UNIX |
| (típicamente un proxy dc_client local); |
| <code>IP:server.example.com:9001</code> especifica una dirección IP. Para |
| usar esto, asegúrese de que <module>mod_socache_dc</module> está |
| cargado.</p></li> |
| |
| </ul> |
| |
| <example><title>Ejemplos</title> |
| <highlight language="config"> |
| SSLSessionCache "dbm:/usr/local/apache/logs/ssl_gcache_data" |
| SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_gcache_data(512000)" |
| </highlight> |
| </example> |
| |
| <p>El mutex <code>ssl-cache</code> se usa para serializar el acceso a la cache |
| de sesión para prevenir corrupción. Este mutex puede configurarse usando la |
| directiva <directive module="core">Mutex</directive>.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLSessionCacheTimeout</name> |
| <description>Número de segundos antes de que la sesión SSL expira |
| en la Cache de Sesión</description> |
| <syntax>SSLSessionCacheTimeout <em>segundos</em></syntax> |
| <default>SSLSessionCacheTimeout 300</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Aplica también al RFC 5077 de reanudación de sesión en |
| Apache 2.4.10 o posterior</compatibility> |
| |
| <usage> |
| <p> |
| Esta directiva configura el tiemplo límite en segundos para la información |
| guardada en la caché de sesión SSL de interproceso/global, la caché de memoria |
| interna de OpenSSL y para las sesiones reanudadas por la reanudación de sesión |
| de TLS (RFC 5077). Puede ponerse hasta un mínimo de 15 para hacer pruebas, pero |
| debería configurarse con valores como 300 en entornos funcionales.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLSessionCacheTimeout 600 |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLEngine</name> |
| <description>Interruptor de Activación del motor SSL</description> |
| <syntax>SSLEngine on|off|optional|addr[:port] [addr[:port]] ...</syntax> |
| <default>SSLEngine off</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>El parámetro <code>addr:port</code> está disponible en Apache |
| 2.4.30 y posterior.</compatibility> |
| |
| <usage> |
| <p> |
| Esta directiva sirve para activar o desactivar el uso del motor del protocolo |
| SSL/TLS. Los valores 'on', 'off' y 'optional' deberían usarse dentro de una |
| sección <directive module="core" type="section">VirtualHost</directive> para |
| activar SSL/TLS para un host virtual. Por defecto el motor de SSL/TLS está |
| deshabilitado para ambos el servidor principal y todos los host virtuales |
| configurados.</p> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| <VirtualHost _default_:443> |
| SSLEngine on |
| #... |
| </VirtualHost> |
| </highlight> |
| </example> |
| <p>Se deberían usar los valores <code>addr:port</code> en la configuración |
| global del servidor para activar el motor del Protocolo SSL/TLS para |
| <em>todos</em> los |
| <directive module="core" type="section">VirtualHost</directive> |
| que coincidan con una de las direcciones de la lista.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLEngine *:443 |
| <VirtualHost *:443> |
| #... |
| </VirtualHost> |
| </highlight> |
| </example> |
| <p><directive>SSLEngine</directive> 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> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLFIPS</name> |
| <description>Interruptor del modo SSL FIPS</description> |
| <syntax>SSLFIPS on|off</syntax> |
| <default>SSLFIPS off</default> |
| <contextlist><context>server config</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva activa o desactiva el uso de FIPS_mode en la librería SSL. Esto |
| debe ponerse en el contexto de la configuració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ía SSL. |
| </p> |
| |
| <p> |
| Si httpd fuera compilado contra una librería SSL que no soporta FIPS_mode, |
| <code>SSLFIPS on</code> fallará. Vea el documento de Políticas de Seguridad |
| FIPS 140-2 de su proveedor de librería SSL para requerimientos específicos para |
| usar mod_ssl en un modo de operación aprobado; tenga en cuenta que mod_ssl |
| en sí mismo no está validado, pero puede ser descrito como un módulo |
| validado de criptografía FIPS 140-2, cuando todos los componentes son montados |
| y gestionados bajo las reglas impuestas por la Política de Seguridad aplicable. |
| </p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProtocol</name> |
| <description>Configura versiones de protocolo SSL/TLS utilizables</description> |
| <syntax>SSLProtocol [+|-]<em>protocol</em> ...</syntax> |
| <default>SSLProtocol all -SSLv3</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <p> |
| Se puede usar esta directiva para controlar que versiones del protocolo SSL/TLS |
| serán aceptadas en las nuevas conexiones.</p> |
| <p> |
| Los <em>protocolos</em> disponibles (no sensibles a mayúsculas) son:</p> |
| <ul> |
| <li><code>SSLv3</code> |
| <p> |
| Este es el protocolo de Secure Sockets Layer (SSL), versió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ón 1.0. |
| Es el sucesor de SSLv3 y está definido en |
| <a href="http://www.ietf.org/rfc/rfc2246.txt">RFC 2246</a>. |
| Está soportado por casi cualquier cliente.</p></li> |
| |
| <li><code>TLSv1.1</code> (cuando se usa OpenSSL 1.0.1 y posterior) |
| <p> |
| Una revisió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ó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ón de configuración |
| ``no-ssl3'', donde <code>all</code> no incluye <code>+SSLv3</code>). |
| </p></li> |
| </ul> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLProtocol TLSv1 |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLCipherSuite</name> |
| <description>Conjunto de Cifrados disponibles para negociación en el saludo SSL |
| </description> |
| <syntax>SSLCipherSuite <em>especificación-de-cifrado</em></syntax> |
| <default>SSLCipherSuite DEFAULT (depende de la versión de OpenSSL)</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context> |
| <context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>AuthConfig</override> |
| |
| <usage> |
| <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ándar de SSL cuando se |
| establece una conexión. En contexto directorio fuerza una renegociación SSL con |
| el juego de cifrados después de que la solicitud HTTP ha sido leída pero antes de |
| que se envíe la respuesta.</p> |
| <p> |
| Una especificación de cifrado SSL en <em>especificación-de-cifrado</em> se compone de 4 |
| atributos principales má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ón</em>:<br /> |
| RSA, Diffie-Hellman, DSS, ECDSA, or none. |
| </li> |
| <li><em>Algoritmo de Cifrado/Encriptación</em>:<br /> |
| AES, DES, Triple-DES, RC4, RC2, IDEA, etc. |
| </li> |
| <li><em>Algoritmo de Resú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án |
| soportados. Para especificar qué 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ón openssl |
| utilizada. Versiones más modernas de openssl pueden incluir cifrados |
| adicionales.</p> |
| |
| <table border="1"> |
| <columnspec><column width=".5"/><column width=".5"/></columnspec> |
| <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ó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ó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 ésto se vuelve interesante es que éstos se pueden poner juntos |
| para especificar el orden y los cifrados que quiere usar. Para acelerar esto |
| también hay pseudó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ón-de-cifrado</em>. Los prefijos disponibles son:</p> |
| |
| <ul> |
| <li>none: añade cifrado a la lista</li> |
| <li><code>+</code>: mueve los cifrados coincidentes a la ubicación actual en la |
| lista</li> |
| <li><code>-</code>: borra los cifrados de la lista (se pueden añadir más |
| adelante)</li> |
| <li><code>!</code>: mata el cifrado de la lista completamente |
| (<strong>no</strong> puede añadirse después)</li> |
| </ul> |
| |
| <note> |
| <title>Los cifrados <code>aNULL</code>, <code>eNULL</code> y <code>EXP</code> |
| siempre están deshabilitados</title> |
| <p>Empezando con la versión 2.4.7, null y cifrados de grado export |
| están siempre deshabilitados, asi que mod_ssl añade incondicionalmente |
| <code>!aNULL:!eNULL:!EXP</code> a cualquier lista de cifrados en la |
| inicialización.</p> |
| </note> |
| |
| <p>Una forma má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ón-de-cifrado</em>. La cadena <em>especificación-de-cifrado</em> depende |
| de la versión de librerí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és, incluye los cifrados de seguridad alta y media. Finalmente, |
| elimina todos los cifrados que no autentican, p.ej. para SSL los cifrados |
| Anónimos Diffie-Hellman, así como todos los cifrados que usan <code>MD5</code> |
| como algoritmo de hash porque se ha probado que son insuficientes.</p> |
| <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> |
| </example> |
| <p>La lista completa de cifrados RSA & DH concretos para SSL se facilita en |
| la <a href="#table2">Tabla 2</a>.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW |
| </highlight> |
| </example> |
| <table border="1"> |
| <columnspec><column width=".3"/><column width=".1"/><column width=".13"/> |
| <column width=".1"/><column width=".13"/><column width=".1"/> |
| <column width=".13"/></columnspec> |
| <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> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLCertificateFile</name> |
| <description>Fichero de datos Certificado X.509 codificado en PEM</description> |
| <syntax>SSLCertificateFile <em>ruta-al-fichero</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva apunta a un fichero con datos de certificado en formato PEM. Como |
| mínimo, el fichero debe incluir un certificado final (no sólo CA a menos que sea |
| autofirmado). La directiva puede usarse multiples veces (haciendo referencia a |
| ficheros distintos) para dar soporte a múltiples algoritmos para la |
| autenticación de servidor - típicamente RSA, DSA y ECC. El número de algoritmos |
| soportados depende de la versión de OpenSSL utilizada por mod_ssl: con la versión |
| 1.0.0 o posterior, |
| <code>openssl list-public-key-algorithms</code> sacará una lista de algoritmos |
| soportados, vea también la nota más adelante sobre limitaciones de versiones |
| OpenSSL previas a 1.0.2 y la forma de sortearlas. |
| </p> |
| |
| <p> |
| Los ficheros pueden también incluir certificados de CA intermedias, ordenados |
| desde el certificado firmado hasta el certificado raíz. Esto está soportado con |
| la versión 2.4.8 y posterior, y deja obsoleta la directiva |
| <directive module="mod_ssl">SSLCertificateChainFile</directive>. |
| 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én se pueden añadir parámetros personalizados DH y un nombre de curva EC |
| para claves efímeras al final del primer fichero configurado usando |
| <directive module="mod_ssl">SSLCertificateFile</directive>. |
| Esto está soportado en la versión 2.4.7 y posterior. |
| |
| Tales parámetros pueden ser generados usando los comandos |
| <code>openssl dhparam</code> y <code>openssl ecparam</code>. Los parámetros se |
| pueden añadir tal cual al final del primer fichero de certificado. sólo se puede |
| usar el primer fichero para los parámetros personalizados, puesto que estos |
| se aplican independientemente del tipo de algoritmo de autenticación. |
| </p> |
| |
| <p> |
| Finalmente la clave privada del certificado también se puede añadir al fichero |
| de certificado en lugar de usar por separado la directiva |
| <directive module="mod_ssl">SSLCertificateKeyFile</directive>. Esta práctica |
| está muy desaconsejada. Si se usa, los ficheros de certificado usando tales |
| ficheros de claves embebidas deben configurarse después de los certificados que |
| usan una clave privada en un fichero aparte. Si la clave privada está encriptada |
| , el diálogo de solicitud de contraseña se fuerza en el arranque. |
| </p> |
| |
| <note> |
| <title>Interoperabilidad de parámetro DH con primos > 1024 bits</title> |
| <p> |
| Comenzando con la versión 2.4.7, mod_ssl hace uso de pará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ón 2.4.10 |
| (from <a href="http://www.ietf.org/rfc/rfc3526.txt">RFC 3526</a>), y los |
| envía a clientes basá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> |
| </note> |
| |
| <note> |
| <title>Parámetros DH por defecto cuando se usan multiples certificados y |
| y versiones de OpenSSL anteriores a 1.0.2</title> |
| <p> |
| Cuando se usan múltiples certificados para dar soporte a algoritmos de |
| autenticación diferentes (como RSA, DSA pero principalmente ECC) y OpenSSL |
| anterior a 1.0.2, se recomienda usar o bien parámetros DH personalizados |
| (preferiblemente) añadiéndolos al primer fichero de certificado (como se |
| describe más arriba), o ordenar las directivas |
| <directive>SSLCertificateFile</directive> para que los certificados RSA/DSA |
| estén colocadas <strong>después</strong> del ECC. |
| </p> |
| |
| <p> |
| Esto se debe a una limitación en versiones má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ámetros |
| DH al cliente) pero en su lugar siempre se provee el último certificado |
| configurado. Consecuentemente, el servidor puede seleccionar parámetros DH |
| por defecto basado en la longitud de la clave privada incorrecta (las clacves |
| ECC son mucho más pequeñas que las RSA/DSA y su longitud no es relevante para |
| seleccionar primos DH). |
| </p> |
| |
| <p> |
| Puesto que los parámetros personalizados DH siempre tienen precedencia sobre |
| los de por defecto, este problema se puede evitar creando y configurándolos |
| (como se describe arriba), y así usar una longitud adecuada/personalizada. |
| </p> |
| </note> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLCertificateFile "/usr/local/apache2/conf/ssl.crt/server.crt" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLCertificateKeyFile</name> |
| <description>Fichero de clave privada de Servidor codificada en PEM</description> |
| <syntax>SSLCertificateKeyFile <em>ruta-al-fichero</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva apunta al fichero de clave privada codificado en PEM para el |
| servidor. Si la clave privada contenida en el fichero está encriptada, se |
| forzará un diálogo de solicitud de contraseña en el arranque.</p> |
| |
| <p> |
| La directiva puede usarse múltiples veces (haciendo referencia a ficheros |
| distintos) para dar soporte a múltiples algoritmos de autenticación para el |
| servidor. Por cada directiva |
| <directive module="mod_ssl">SSLCertificateKeyFile</directive> |
| directive, debe haber una directiva <directive>SSLCertificateFile</directive> |
| relacionada.</p> |
| |
| <p> |
| La clave privada se puede combinar con el certificado en el fichero indicado en |
| <directive module="mod_ssl">SSLCertificateFile</directive>, pero esta práctica |
| es muy desaconsejable. Si se usa, los ficheros de certificado con la clave |
| privada dentro deben configurarse después de los certificados que tienen una |
| clave privada en otro fichero.</p> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLCertificateKeyFile "/usr/local/apache2/conf/ssl.key/server.key" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLCertificateChainFile</name> |
| <description>Fichero de Certificados CA de Servidor codificado en |
| PEM</description> |
| <syntax>SSLCertificateChainFile <em>ruta-al-fichero</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <note><title>SSLCertificateChainFile está obsoleto</title> |
| <p><code>SSLCertificateChainFile</code> quedó obsoleto con la versión 2.4.8, |
| cuando se extendió <directive module="mod_ssl">SSLCertificateFile</directive> |
| para cargar también los certificados de CA intermedias del fichero de |
| certificados del servidor.</p> |
| </note> |
| |
| <p> |
| Esta directiva configura el fichero <em>todo-en-uno</em> donde puede ensamblar los |
| certificados de Autoridades de Certificació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íz. Tal fichero es simplemente la concatenación de varios |
| ficheros de Certificado CA codificado en PEM, generalmente siguiendo la cadena |
| de certificación.</p> |
| |
| <p> |
| Esto debería usarse alternativamente y/o adicionalmente a |
| <directive module="mod_ssl">SSLCACertificatePath</directive> para construir |
| explicitamente la cadena de CA del certificado del servidor que se envía al |
| navegador además del certificado del servidor. Es especialmente últil |
| para evitar conflictos con certificados CA cuando se usa autenticación de |
| cliente. Porque aunque colocar los CA de la cadena de certificados del servidor |
| en <directive module="mod_ssl">SSLCACertificatePath</directive> tiene el mismo |
| efecto para la construcción de la cadena de certificados, tiene un efecto |
| adicional en la que los certificados cliente firmados por el mismo certificado CA |
| también se aceptan en la autenticación de cliente.</p> |
| |
| <p> |
| Pero tenga cuidado: Proveer la cadena de certificados funciona sólo si está |
| usando <em>un sólo</em> certificado de servidor basado en RSA <em>o</em> DSA. Si |
| está usando un par de certificados juntos RSA+DSA, esto sólo funcionará si |
| ambos certificados usan <em>la misma</em> cadena de certificados. Si no los |
| navegadores se confundirán en esta situación.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLCertificateChainFile "/usr/local/apache2/conf/ssl.crt/ca.crt" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLCACertificatePath</name> |
| <description>Directorio de certificados CA codificados en PEM para la |
| autenticación de Cliente</description> |
| <syntax>SSLCACertificatePath <em>ruta-de-directorio</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <override>AuthConfig</override> |
| |
| <usage> |
| <p> |
| Esta directiva configura el directorio donde guarda los certificados de |
| Autoridades de Certificación (CAs) de los clientes que accederán a su servidor. |
| Esto se usarán para verificar el certificado cliente en la Autenticación de |
| Cliente.</p> |
| |
| <p> |
| Los ficheros en este directorio tienen que ser codificados en PEM y se acceden a |
| través de nombres de ficheros con hash. Así que generalmente no puede poner |
| simplemente los ficheros ahí: también tiene que crear enlaces simbólicos con |
| nombre <em>valor-hash</em><code>.N</code>. Y siempre debería asegurarse de que |
| este directorio contiene los enlaces simbólicos apropiados.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLCACertificatePath "/usr/local/apache2/conf/ssl.crt/" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLCACertificateFile</name> |
| <description>Fichero de Certificados CA concatenados y codificados en PEM para |
| la Autenticación de Cliente</description> |
| <syntax>SSLCACertificateFile <em>ruta-al-fichero</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <override>AuthConfig</override> |
| |
| <usage> |
| <p> |
| Esta directiva configura el fichero <em>todo-en-uno</em> donde puede ensamblar |
| los Certificados de las Autoridades de Certificación (CA) de los |
| <em>clientes</em> que acceden a su servidor. Esto se usan para la Autenticación |
| de Cliente. Tal fichero es sencillamente la concatenación, en orden de preferencia, |
| de varios ficheros de Certificado codificados en PEM. Esto puede usarse |
| alternativamente y/o adicionalmente a |
| <directive module="mod_ssl">SSLCACertificatePath</directive>.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLCACertificateFile "/usr/local/apache2/conf/ssl.crt/ca-bundle-client.crt" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLCADNRequestFile</name> |
| <description>Fichero de certificados CA concatenados codificados en PEM para |
| definir nombres de CA aceptables</description> |
| <syntax>SSLCADNRequestFile <em>ruta-al-fichero</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <p>Cuando se solicita un certificado cliente por mod_ssl, una lista de |
| <em>nombres de Autoridad Certificadora aceptables</em> se enví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án las directivas <directive |
| module="mod_ssl">SSLCADNRequestPath</directive> o |
| <directive module="mod_ssl">SSLCADNRequestFile</directive>, 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 |
| <directive module="mod_ssl">SSLCACertificateFile</directive> y |
| <directive module="mod_ssl">SSLCACertificatePath</directive>; en otras palabras, |
| los nombres de las CAs que se usarán actualmente para verificar el certificado |
| cliente.</p> |
| |
| <p>En algunas circunstancias, es ú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án firmados CAs intermedias. En tales |
| casos, <directive module="mod_ssl">SSLCADNRequestPath</directive> y/o |
| <directive module="mod_ssl">SSLCADNRequestFile</directive> 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><directive module="mod_ssl">SSLCADNRequestFile</directive> debe especificar |
| un fichero <em>todo-en-uno</em> que contenga una concatenación de certificados |
| CA codificados en PEM.</p> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLCADNRequestFile "/usr/local/apache2/conf/ca-names.crt" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLCADNRequestPath</name> |
| <description>Directorio de Certificados CA codificados en PEM para definir |
| nombres de CA aceptables</description> |
| <syntax>SSLCADNRequestPath <em>ruta-al-directorio</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| |
| <p>Esta directiva opcional puede usarse para especificar un conjunto de |
| <em>nombres de CA aceptables</em> que serán enviados al cliente cuando se |
| solicita un certificado cliente. Vea la directiva |
| <directive module="mod_ssl">SSLCADNRequestFile</directive> para má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í que generalmente no puede |
| poner sin más los ficheros de Certificado ahí: también tiene que crear enlaces |
| simbólicos llamados <em>valor-de-hash</em><code>.N</code>. Y siempre debería |
| estar seguro de que este directorio contiene los enlaces simbólicos |
| apropiados.</p> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLCADNRequestPath "/usr/local/apache2/conf/ca-names.crt/" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLCARevocationPath</name> |
| <description>Directorio de CRLs de CA codificados en PEM para la Autenticación |
| de Cliente</description> |
| <syntax>SSLCARevocationPath <em>ruta-al-directorio</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva configura el directorio donde usted alojará las Listas de |
| Revocación de Certificados (CRL) de las Autoridades de Certificación (CAs) para |
| los clientes que conectan al servidor. Estas se usan para revocar el |
| certificado cliente en la Autenticació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í que generalmente no sólo tiene que |
| poner los ficheros CRL ahí. Adicionalmente tiene que crear enlaces simbólicos |
| llamados <em>valor-de-hash</em><code>.rN</code>. Y debería asegurarse siempre |
| que este directorio contiene los enlaces simbólicos apropiados.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLCARevocationPath "/usr/local/apache2/conf/ssl.crl/" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLCARevocationFile</name> |
| <description>Fichero de CRL's de CA concatenados y codificados en PEM para la |
| Autenticación de ClienteFile of concatenated PEM-encoded CA CRLs for |
| </description> |
| <syntax>SSLCARevocationFile <em>ruta-al-fichero</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva configura el fichero <em>todo-en-uno</em> donde puede ensamblar |
| las Listas de Revocación de Certificados (CRL) de las Autoridades de |
| Certificación (CA) para los <em>clientes</em> que conectan a su servidor. Estos |
| se usan para la Autenticación de Cliente. Tal fichero es simplemente la |
| concatenación de varios ficheros CRL codificados en PEM, en orden de |
| preferencia. Esto se puede usar alternativamente a/o adicionalmente a |
| <directive module="mod_ssl">SSLCARevocationPath</directive>.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLCARevocationFile "/usr/local/apache2/conf/ssl.crl/ca-bundle-client.crl" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLCARevocationCheck</name> |
| <description>Activar comprobación de revocación basada en CRL</description> |
| <syntax>SSLCARevocationCheck chain|leaf|none <em>modificador</em>es</syntax> |
| <default>SSLCARevocationCheck none</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility><em>Modificador</em>es Opcionales disponibles en httpd 2.4.21 o |
| posterior</compatibility> |
| |
| <usage> |
| <p> |
| Activa la comprobación de la lista de revocación de certificados (CRL). Al menos |
| <directive module="mod_ssl">SSLCARevocationFile</directive> |
| o <directive module="mod_ssl">SSLCARevocationPath</directive> deben estar |
| configuradas. Cuando se configuran a <code>chain</code> (configuració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ón 2.3.15, la comprobación de CRL en mod_ssl también |
| tenía éxito cuando no se encontraban CRL/s para los certificados comprobados |
| en ninguna de las ubicaciones configuradas con |
| <directive module="mod_ssl">SSLCARevocationFile</directive> |
| o <directive module="mod_ssl">SSLCARevocationPath</directive>. |
| </p> |
| |
| <p> |
| Con la introducción de <directive>SSLCARevocationFile</directive>, |
| 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ón tenga éxito, si no fallará 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> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLCARevocationCheck chain |
| </highlight> |
| </example> |
| <example><title>Compatibilidad con versiones 2.2</title> |
| <highlight language="config"> |
| SSLCARevocationCheck chain no_crl_for_cert_ok |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLVerifyClient</name> |
| <description>Tipo de verificación de Certificado Cliente</description> |
| <syntax>SSLVerifyClient <em>nivel</em></syntax> |
| <default>SSLVerifyClient none</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context> |
| <context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>AuthConfig</override> |
| |
| <usage> |
| <p> |
| Esta directiva configura el nivel de verificación de Certificado para la |
| Autenticació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ón de cliente usado en el saludo estándar de SSL |
| cuando se establece una conexión. En el contexto directorio fuerza una |
| renegociación SSL con el nivel de verificación reconfigurado después de que se |
| lee la petiicón HTTP pero antes de que se responda la respuesta HTTP.</p> |
| |
| <p> |
| Los siguientes niveles está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álido</li> |
| <li><strong>require</strong>: |
| el cliente <em>tiene que</em> presentar un Certificado válido</li> |
| <li><strong>optional_no_ca</strong>: |
| el cliente puede presentar un Certificado válido<br /> |
| pero no tiene por qué ser verificable (satisfactoriamente). No se puede |
| depender de esta opción para la autenticación de cliente. </li> |
| </ul> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLVerifyClient require |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLVerifyDepth</name> |
| <description>Profundidad máxima de Certificados CA en la verificación de |
| Certificado Cliente</description> |
| <syntax>SSLVerifyDepth <em>number</em></syntax> |
| <default>SSLVerifyDepth 1</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context> |
| <context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>AuthConfig</override> |
| |
| <usage> |
| <p> |
| Esta directiva configura hasta qué nivel debe mod_ssl verificar antes de decidir |
| cuando los clientes no tienen un certificado vá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ón de cliente en el |
| salido SSL estándar cuando se establece una conexión. En el contexto directorio |
| fuerza una renegociación SSL con la profundidad de verficiación de cliente |
| reconfigurada después de que se lea la petición HTTP pero antes de que sé haya |
| enviado la respuesta HTTP.</p> |
| <p> |
| La profundidad es en realidad el número máximo de certificados CA intermedios, |
| p. ej. el número de certificados CA máximo permitido a seguir en la verificación |
| del certificado cliente. Una profundidad de 0 significa que só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án bajo |
| <directive module="mod_ssl">SSLCACertificatePath</directive>), etc.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLVerifyDepth 10 |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLSRPVerifierFile</name> |
| <description>Ruta hacia el fichero verificador SRP</description> |
| <syntax>SSLSRPVerifierFile <em>ruta-al-fichero</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible en httpd 2.4.4 y posterior si se usa OpenSSL 1.0.1 o |
| posterior</compatibility> |
| |
| <usage> |
| <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ámetros de grupo TLS-SRP.</p> |
| <example><title>Ejemplo</title> |
| SSLSRPVerifierFile "/ruta/al/fichero.srpv" |
| </example> |
| |
| <p> |
| El fichero verificador puede generarse con la utilidad de línea de comandos |
| <code>openssl</code>:</p> |
| |
| <example><title>Creando el fichero verificador SRP</title> |
| openssl srp -srpvfile passwd.srpv -userinfo "some info" -add username |
| </example> |
| |
| <p> El valor dado con el parámetro opcional <code>-userinfo</code> está |
| disponible en la variable de entorno de petición |
| <code>SSL_SRP_USERINFO</code>.</p> |
| |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLSRPUnknownUserSeed</name> |
| <description>Semilla de usuario desconocido SRP</description> |
| <syntax>SSLSRPUnknownUserSeed <em>cadenadecaracteres-secreta</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible en httpd 2.4.4 y posterior si se usa OpenSSL 1.0.1 o |
| posterior</compatibility> |
| |
| <usage> |
| <p> |
| Esta directiva configura la semilla usada para aparentar pará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á la alerta UNKNOWN_PSK_IDENTITY a |
| clientes que espcifican un nombre de usuario desconocido. |
| </p> |
| <example><title>Ejemplo</title> |
| SSLSRPUnknownUserSeed "secret" |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLOptions</name> |
| <description>Configurar varias opciones del motor SSL en tiempo |
| real</description> |
| <syntax>SSLOptions [+|-]<em>opción</em> ...</syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context> |
| <context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>Options</override> |
| |
| <usage> |
| <p> |
| Esta directiva puede usarse para controlar varias opciones en tiempo real en |
| contexto directorio. Normalmente, si múltiples <code>SSLOptions</code> |
| pueden aplicar a un directorio, entonces se usará la más |
| específica; las opciones no se fusionan. Sin embargo, si <em>todas</em> las |
| opciones en la directiva <code>SSLOptions</code> están precedidas de un signo |
| más (<code>+</code>) o menos (<code>-</code>), las opciones se fusionan. |
| Cualquier opción precedida de un <code>+</code> es añadida a las opciones que |
| se están aplicando en ese momento, y cualquier opció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ón está habilitada, se generan las variables de entorno |
| estándar de SSL relacionadas con CGI/SSI. Esto está desactivado por defecto |
| por razones de rendimiento, porque el paso de extracción de la información |
| es una operación bastante costosa. Así que uno sólo activaría esta opción |
| para peticiones CGI o SSI.</p> |
| </li> |
| <li><code>ExportCertData</code> |
| <p> |
| Cuando se activa esta opció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ón actual HTTPs y pueden usarse por scripts CGI |
| para una comprobación más detallada de los Certificados. Adicionalmente |
| también se facilitan todos los demás certificados de la cadena del |
| certificado cliente. Esto carga el entorno de variables un poco, así |
| que por esto deberá usar esta opción para activarla sólo cuando sea |
| necesario.</p> |
| </li> |
| <li><code>FakeBasicAuth</code> |
| <p> |
| Cuando se activa esta opción, el Nombre Distinguido de Sujeto (DN) del |
| Certificado Cliente X509 se traduce a un nombre de Autenticación HTTP Básica. |
| Esto significa que se pueden usar los métodos estándar de autenticación para |
| control de acceso. El nombre de usuario es tan só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 |
| <directive module="mod_ssl">SSLUserName</directive> puede usarse para |
| especificar qué |
| parte del Sujeto del Certificado está embebida en el nombre de usuario. |
| Tenga en cuenta que no se obtiene ninguna contraseña del usuario. Cada |
| entrada en el fichero de usuario necesita esta contraseña: |
| ``<code>xxj31ZMTZzkVA</code>'', que es la versión encriptada en DES de la |
| palabra `<code>password</code>''. Aquellos que viven bajo la encriptación |
| basada en MD5 (por ejemplo bajo FreeBSD or BSD/OS, etc.) deberí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 <directive module="mod_auth_basic">AuthBasicFake</directive> |
| dentro de <module>mod_auth_basic</module> puede usarse como un mecanismo |
| general para fingir la autenticación básica, dando control sobre la |
| estructura tanto del nombre como de la contraseña.</p> |
| |
| <note type="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ínea), o una coma. Si se encuentra una coma, se generará |
| un error 403 Forbidden con httpd 2.5.1 y posterior.</p> |
| </note> |
| </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í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ón del acceso debido a |
| <code>SSLRequireSSL</code> o <code>SSLRequire</code> (porque así es como |
| debería funcionar el mecanismo <code>Satisfy</code> de Apache .) Pero para |
| la restricción estricta de acceso puede usar <code>SSLRequireSSL</code> y/o |
| <code>SSLRequire</code> en combinació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ón optimizada de renegociación de conexión SSL cuando |
| se usan directivas SSL en contexto de directorio. Por defecto un esquema |
| estricto está habilitado donde <em>cada</em> reconfiguración de directorio de |
| parámetros SSL provoca una renegociación <em>total</em> del saludo SSL. |
| Cuando se usa esta opción mod_ssl intenta evitar saludos SSL innecesarios |
| haciendo comprobaciones más específicas (pero todavía seguras) de parámetros. |
| Sin embargo estas comprobaciones más específicas pueden no ser lo que espera |
| el usuario, así que, lo recomendable es que active ésto sólo en contexto |
| directorio.</p> |
| </li> |
| <li><code>LegacyDNStringFormat</code> |
| <p> |
| Esta opción influencia cómo se formatean los valores de las variables |
| <code>SSL_{CLIENT,SERVER}_{I,S}_DN</code>. Desde la versió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á utilizado, usa barras como |
| separadores y no manipula caracteres no-ASCII y especiales de ninguna forma |
| consistente. |
| </p> |
| </li> |
| </ul> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLOptions +FakeBasicAuth -StrictRequire |
| <Files ~ "\.(cgi|shtml)$"> |
| SSLOptions +StdEnvVars -ExportCertData |
| </Files> |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLRequireSSL</name> |
| <description>Denegar el acceso cuando no se usa SSL para la petición |
| HTTP</description> |
| <syntax>SSLRequireSSL</syntax> |
| <contextlist><context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>AuthConfig</override> |
| |
| <usage> |
| <p><!-- XXX: I think the syntax is wrong --> |
| Esta directiva prohibe el acceso a menos que esté habilitado HTTP sobre SSL |
| (p. ej. HTTPS) para la conexión en cuestión. Esto es muy útil dentro de |
| hosts virtuales con SSL activado o directorios, para defenderse de errores |
| de configuración que exponen cosas que deberían estar protegidas. Cuando esta |
| directiva está presente todas las peticiones que no usen SSL son denegadas.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLRequireSSL |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLRequire</name> |
| <description>Permite acceso sólo cuando una compleja expresión booleana |
| arbitraría es cierta</description> |
| <syntax>SSLRequire <em>expresión</em></syntax> |
| <contextlist><context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>AuthConfig</override> |
| |
| <usage> |
| |
| <note><title>SSLRequire está obsoleta</title> |
| <p><code>SSLRequire</code> está obsoleta y deberí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ón de la sintaxis de <code>SSLRequire</code>, con la siguiente |
| excepción:</p> |
| |
| <p>En <code>SSLRequire</code>, los operadores de comparación <code><</code>, |
| <code><=</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és el orden |
| léxico. Por otro lado, <a href="../expr.html">ap_expr</a> tiene dos conjuntos |
| de operadores de comparación: Los operadores <code><</code>, |
| <code><=</code>, ... hacen compraciones léxicas de cadenas de caracteres, |
| mientras que los operadores <code>-lt</code>, <code>-le</code>, ... hacen |
| comparación de números integrales. |
| Para los últimos, también hay aliases sin el guión inicial: |
| <code>lt</code>, <code>le</code>, ... |
| </p> |
| </note> |
| |
| <p> |
| Esta directiva especifica un requerimiento de acceso general que tiene |
| que pasarse para que se permita el acceso. Es una directiva muy versátil porque |
| la especificación del requerimiento es una compleja expresión booleana arbitraria |
| que contiene cualquier número de comprobaciones.</p> |
| <p> |
| |
| La <em>expresión</em> debe coincidir en la siguiente sintaxis (dada una notación |
| gramatical BNF):</p> |
| <blockquote> |
| <pre> |
| expr ::= "<strong>true</strong>" | "<strong>false</strong>" |
| | "<strong>!</strong>" expr |
| | expr "<strong>&&</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><</strong>" word | word "<strong>lt</strong>" word |
| | word "<strong><=</strong>" word | word "<strong>le</strong>" word |
| | word "<strong>></strong>" word | word "<strong>gt</strong>" word |
| | word "<strong>>=</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án listadas en la |
| <a href="../expr.html#functions">documentación de ap_expr</a>.</p> |
| |
| <p>La <em>expresión</em> es interpretada dentro de una representación interna |
| de máquina cuando se carga la configuración, y es después evaluada durante |
| el procesamiento de la petición. En contexto .htaccess, la <em>expresión</em> es |
| en ambos casos interpretada y ejecutada cada vez que se encuentra un fichero |
| .htaccess durante el procesamiento de la petición.</p> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="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]+$/ |
| </highlight> |
| </example> |
| |
| <p>La función <code>PeerExtList(<em>object-ID</em>)</code> espera encontrar |
| cero o más instancias de la extensión de certificado X.509 identificadas por |
| un <em>ID de objecto</em> (OID) dado en el certificado cliente. La expresión |
| se evalúa a cierta si la cadena de caracteres de la izquierda coincide |
| exactamente contra el valor de la extensión identificada por este OID. (Si están |
| presentes múltiples extensiones con el mismo OID, al menos uno debe |
| coincidir).</p> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLRequire "foobar" in PeerExtList("1.2.3.4.5.6") |
| </highlight> |
| </example> |
| |
| <note><title>Notas sobre la función PeerExtList</title> |
| |
| <ul> |
| |
| <li><p>El ID de objeto puede ser especificado o bien como un |
| nombre descriptivo reconocido por la librería SSL, tal como |
| <code>"nsComment"</code>, o como un OID numérico, tal como |
| <code>"1.2.3.4.5.6"</code>.</p></li> |
| |
| <li><p>Expresiones con tipos conocidos para la librería SSL se expresan como una |
| cadena de caracteres antes de su comparación. Para una extensión con un tipo no |
| reconocido por la librería SSL, mod_ssl interpretará el valor si es uno de los |
| tipos primitivos ASN.1 types UTF8String, IA5String, VisibleString, |
| o BMPString. Para una extensión de uno de estos tipos, el valor de la cadena |
| de caracteres se convertirá en UTF-8 si es necesario, y entonces comparada |
| contra la expresión de la izquierda.</p></li> |
| |
| </ul> |
| </note> |
| |
| </usage> |
| <seealso><a href="../env.html">Variables de entorno en el Servidor HTTP |
| Apache</a>, para más ejemplos. |
| </seealso> |
| <seealso><a href="mod_authz_core.html#reqexpr">Require expr</a></seealso> |
| <seealso><a href="../expr.html">Sintaxis general de expresión en el Servidor |
| HTTP Apache</a> |
| </seealso> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLRenegBufferSize</name> |
| <description>Configure el tamaño para el búfer de renegociación |
| SSL</description> |
| <syntax>SSLRenegBufferSize <var>bytes</var></syntax> |
| <default>SSLRenegBufferSize 131072</default> |
| <contextlist><context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>AuthConfig</override> |
| |
| <usage> |
| |
| <p>Si se requiere una renegociación SSL por el contexto location, por ejemplo, |
| cualquier uso de <directive module="mod_ssl">SSLVerifyClient</directive> en un |
| bloque Directory o Location, entonces <module>mod_ssl</module> debe hacer búfer |
| del cuerpo de la petició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á para este búfer.</p> |
| |
| <note type="warning"><p> |
| Tenga en cuenta que en muchas configuraciones, el cliente enviando el cuerpo de |
| la petición no es confiable así que se debe considerar un ataque de denegación |
| de servicio por consumo de memoria cuando se cambie este valor de |
| configuración. |
| </p></note> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLRenegBufferSize 262144 |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLStrictSNIVHostCheck</name> |
| <description>Permitir o no a clientes no-SNI acceder a host virtuales basados |
| en nombre. |
| </description> |
| <syntax>SSLStrictSNIVHostCheck on|off</syntax> |
| <default>SSLStrictSNIVHostCheck off</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <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á el acceso a <em>ningún</em> host virtual que pertenezca |
| a esta combinación de ip/puerto. Si se configura a <code>on</code> en cualquier |
| otro host virtual, los clientes no compatibles con SNI no tendrán acceso a ese |
| host virtual en particular. |
| </p> |
| |
| <note type="warning"><p> |
| Esta opción sólo está disponible si httpd fue compilado contra una versión |
| compatible con SNI de OpenSSL. |
| </p></note> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLStrictSNIVHostCheck on |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyMachineCertificatePath</name> |
| <description>Directorio de certificados cliente codificados en PEM y claves |
| para ser usadas por el proxy</description> |
| <syntax>SSLProxyMachineCertificatePath <em>directorio</em></syntax> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva configura el directorio donde se guardan los certificados y claves |
| usadas para la autenticació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ás, debe crear enlaces simbólicos |
| llamados <code><em>valor-del-hash</em>.N</code>. Y siempre debería asegurarse |
| de que este directorio contiene los enlaces simbólicos apropiados.</p> |
| <note type="warning"> |
| <p>Actualmente no hay soporte para claves privadas encriptadas</p> |
| </note> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLProxyMachineCertificatePath "/usr/local/apache2/conf/proxy.crt/" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| |
| <directivesynopsis> |
| <name>SSLProxyMachineCertificateFile</name> |
| <description>Fichero de certificados cliente codificados en PEM y claves para |
| ser usadas por el proxy</description> |
| <syntax>SSLProxyMachineCertificateFile <em>ruta-al-fichero</em></syntax> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva configura el fichero todo-en-uno donde guarda los certificados y |
| claves usadas para la autenticación del servidor proxy en servidores remotos. |
| </p> |
| <p> |
| Este fichero es simplemente la concatenación de varios ficheros de certificado |
| codificados en PEM, en orden de preferencia. Use esta directiva alternativamente |
| o adicionalmente a <code>SSLProxyMachineCertificatePath</code>. |
| </p> |
| <note type="warning"> |
| <p>Actualmente no hay soporte para claves privadas encriptadas</p> |
| </note> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLProxyMachineCertificateFile "/usr/local/apache2/conf/ssl.crt/proxy.pem" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyMachineCertificateChainFile</name> |
| <description>Fichero de certificados CA concatenados y codificados en PEM para |
| ser usados por el proxy para elegir un certificado</description> |
| <syntax>SSLProxyMachineCertificateChainFile <em>ruta-al-fichero</em></syntax> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <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á 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ón de varios ficheros de certificado |
| codificado en PEM. En el arranque, cada certificado cliente configurado será |
| examinado y se construirá una cadena de confianza. |
| </p> |
| <note type="warning"><title>Aviso de Seguridad</title> |
| <p>Si se activa esta directiva, se confiará en todos los certificados en el |
| fichero como si también estuvieran en |
| <directive module="mod_ssl">SSLProxyCACertificateFile</directive>.</p> |
| </note> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLProxyMachineCertificateChainFile "/usr/local/apache2/conf/ssl.crt/proxyCA.pem" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyVerify</name> |
| <description>Tipo de verficación de certificado del servidor remoto</description> |
| <syntax>SSLProxyVerify <em>level</em></syntax> |
| <default>SSLProxyVerify none</default> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| |
| <p>Cuando se configura un proxy para enviar peticiones a un servidor remoto SSL, |
| esta directiva se puede usar para configurar verificación de certificado del |
| servidor remoto.</p> |
| |
| <p> |
| Los siguientes niveles está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álido</li> |
| <li><strong>require</strong>: |
| el servidor remoto <em>tiene que</em> presenta un Certificado válido</li> |
| <li><strong>optional_no_ca</strong>: |
| el servidor remoto puede presentar un Certificado válido<br /> |
| pero no tiene por qué ser verificable (con éxito).</li> |
| </ul> |
| <p>En la práctica só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ón |
| (pero se puede usar para establecer páginas de test SSL, etc.)</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLProxyVerify require |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyVerifyDepth</name> |
| <description>Máxima profundidad de los Certificados CA en la verificación del |
| Certificado en el Servidor Remoto</description> |
| <syntax>SSLProxyVerifyDepth <em>number</em></syntax> |
| <default>SSLProxyVerifyDepth 1</default> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva configura hasta dónde mod_ssl debería verificar antes de decidir |
| que el servidor remoto not tiene un certificado válido.</p> |
| |
| <p> |
| La profundidad actualmente es el número máximo de expedidores intermedios de |
| certificados, p. ej. el número de certificados CA que se permiten seguir como |
| máximo para verificar el certificado del servidor remoto. Una profundidad de 0 |
| sigifnica que só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 <directive module="mod_ssl">SSLProxyCACertificatePath</directive>), |
| etc.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLProxyVerifyDepth 10 |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyCheckPeerExpire</name> |
| <description>Comprobar si el certificado del servidor remoto está expirado |
| </description> |
| <syntax>SSLProxyCheckPeerExpire on|off</syntax> |
| <default>SSLProxyCheckPeerExpire on</default> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva configura si se debe comprobar si el certificado del servidor |
| remoto está expirado o no. Si la comprobación falla se devuelve un error 502 |
| (Bad Gateway). |
| </p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLProxyCheckPeerExpire on |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyCheckPeerCN</name> |
| <description>Comprobar el campo CN del certificado del servidor remoto |
| </description> |
| <syntax>SSLProxyCheckPeerCN on|off</syntax> |
| <default>SSLProxyCheckPeerCN on</default> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <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ía un código de estado 502 (Bad Gateway). |
| <code>SSLProxyCheckPeerCN</code> ha sido sustituido por |
| <directive module="mod_ssl">SSLProxyCheckPeerName</directive> en la versió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ón 2.4.21, todas las configuraciones que permiten una de las |
| opciones <code>SSLProxyCheckPeerName</code> o <code>SSLProxyCheckPeerCN</code> |
| usarán el nuevo comportamiento de |
| <directive module="mod_ssl">SSLProxyCheckPeerName</directive>, y todas las |
| configuraciones que deshabilitan una de las opciones de |
| <code>SSLProxyCheckPeerName</code> o <code>SSLProxyCheckPeerCN</code> |
| suprimirán la validación del nombre del certificado del servidor remoto. sólo |
| la siguiente configuración habilitará la comparación antigua del CN en 2.4.21 y |
| versiones posteriores; |
| </p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLProxyCheckPeerCN on |
| SSLProxyCheckPeerName off |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyCheckPeerName</name> |
| <description>Configure comprobación de nombre de host para certificados de |
| servidor remoto |
| </description> |
| <syntax>SSLProxyCheckPeerName on|off</syntax> |
| <default>SSLProxyCheckPeerName on</default> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| <compatibility>Apache HTTP Server 2.4.5 and later</compatibility> |
| |
| <usage> |
| <p> |
| Esta directiva configura la comprobación del nombre de host de certificados de |
| servidor cuando mod_ssl está actuando como un cliente SSL. La comprobación |
| tendrá éxito si el nombre de host de la petición coincide con uno de los |
| CN del sujeto del certificado, o coincide con la extensión subjectAltName. Si la |
| comprobación falla, la petición SSL se aborta y se devuelve un código de |
| estado 502. |
| </p> |
| |
| <p> |
| Se soportan coincidencias con certificados wildcard para casos específicos: una |
| entrada subjectAltName del tipo dNSName, o atributos CN que comienzan con |
| <code>*.</code> coincidirán con cualquier nombre de host del mismo número de |
| elementos de nombre y el mismo sufijo. |
| P. ej. <code>*.example.org</code> coinciderá con <code>foo.example.org</code>, |
| pero no coincidirá con <code>foo.bar.example.org</code>, porque el número de |
| elementos en el nombre de host respectivo es diferente. |
| </p> |
| |
| <p> |
| Esta característica fue introducida en 2.4.5 y sustituye el comportamiento de |
| la directiva <directive module="mod_ssl">SSLProxyCheckPeerCN</directive>, que |
| só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í que el comportamiento mutuo de las |
| directivas <code>SSLProxyCheckPeerName</code> y <code>SSLProxyCheckPeerCN</code> |
| fue mejorado en la versión 2.4.21. Vea la descripción de la directiva |
| <directive module="mod_ssl">SSLProxyCheckPeerCN</directive> para el |
| comportamiento original y detalles de estas mejoras. |
| </p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyEngine</name> |
| <description>Interruptor de Operación del Motor de Proxy SSL</description> |
| <syntax>SSLProxyEngine on|off</syntax> |
| <default>SSLProxyEngine off</default> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva activa el uso del motor de protocolo SSL/TLS para proxy. Esto |
| se usa actualmente dentro de una sección |
| <directive module="core" type="section">VirtualHost</directive> para activar el |
| uso de proxy con SSL/TLS en un host virtual en particular. Por defecto el Motor |
| de Protocolo SSL/TLS está desactivado para tanto el servidor principal como todos |
| los hosts virtuales.</p> |
| |
| <p>Tenga en cuenta que la directiva <directive>SSLProxyEngine</directive> no |
| debería en general, ser incluida en un host virtual que actuará como forward |
| proxy (usando las directivas |
| <directive module="mod_proxy" type="section">Proxy</directive> |
| o <directive module="mod_proxy">ProxyRequests</directive>). |
| <directive>SSLProxyEngine</directive> no es necesario para activar un servidor |
| forward proxy para hacer proxy de peticiones SSL/TLS.</p> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| <VirtualHost _default_:443> |
| SSLProxyEngine on |
| #... |
| </VirtualHost> |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyProtocol</name> |
| <description>Configure sabores de protocolo SSL utilizables para uso de |
| proxy</description> |
| <syntax>SSLProxyProtocol [+|-]<em>protocolo</em> ...</syntax> |
| <default>SSLProxyProtocol all -SSLv3</default> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <!-- XXX Why does this have an override and not .htaccess context? --> |
| <p> |
| Esta directiva puede usarse para controlar los sabores de protocolo SSL que |
| mod_ssl debería usar cuando establece si entorno de servidor para proxy. sólo |
| conectará con servidores usando uno de sus protocolos facilitados.</p> |
| <p>Por favor vea <directive module="mod_ssl">SSLProtocol</directive> para |
| información adicional. |
| </p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyCipherSuite</name> |
| <description>Conjunto de Cifrados disponibles para negociación en el saludo SSL |
| de proxy</description> |
| <syntax>SSLProxyCipherSuite <em>especificación-de-cifrado</em></syntax> |
| <default>SSLProxyCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP</default> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <p>Equivalente a <directive module="mod_ssl">SSLCipherSuite</directive>, pero |
| para la conexión de proxy. |
| Por favor consulte <directive module="mod_ssl">SSLCipherSuite</directive> |
| para información adicional.</p> |
| </usage> |
| |
| </directivesynopsis> |
| <directivesynopsis> |
| <name>SSLProxyCACertificatePath</name> |
| <description>Directorio de Certificados CA codificados en PEM para la |
| Autenticación de Servidor Remoto</description> |
| <syntax>SSLProxyCACertificatePath <em>ruta-al-directorio</em></syntax> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva configura el directorio donde guarda los Certificados de |
| Autoridades de Certificación (CAs) de los servidores remotos a los que conecta. |
| Estos se usan para verificar el certificado del servidor remoto en la |
| Autenticación de Servidor Remoto.</p> |
| |
| <p> |
| Los ficheros en este directorio tienen que estar codificados en PEM y se accede |
| a ellos a través de nombres de ficheros con hash. Así que generalmente no puede |
| tan sólo colocar los ficheros de Certificado ahí: también tiene que crear |
| enlaces simbólicos llamados <em>valor-de-hash</em><code>.N</code>. Y debería |
| asegurarse siempre de que este directorio contiene los enlaces símbólicos |
| apropiados.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLProxyCACertificatePath "/usr/local/apache2/conf/ssl.crt/" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyCACertificateFile</name> |
| <description>Fichero de Certificados CA concatenados codificados en PEM para |
| la Autenticación Remota del Servidor</description> |
| <syntax>SSLProxyCACertificateFile <em>ruta-al-fichero</em></syntax> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva configura el fichero <em>todo-en-uno</em> donde ensambla los |
| Certificados de Autoridades de Certificación (CA) de los <em>servidores |
| remotos</em> a los que conecta. Estos se usan como Autenticación de Servidor |
| Remoto. Tal fichero es simplemente la concatenación de varios ficheros de |
| Certificado codificados en PEM en orden de preferencia. Esto se puede usar |
| alternativamente y/o adicionalmente a |
| <directive module="mod_ssl">SSLProxyCACertificatePath</directive>.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLProxyCACertificateFile "/usr/local/apache2/conf/ssl.crt/ca-bundle-remote-server.crt" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyCARevocationPath</name> |
| <description>Directorio de CRLs de CA codificadas en PEM para la Autenticación |
| Remota de Servidor</description> |
| <syntax>SSLProxyCARevocationPath <em>ruta-al-directorio</em></syntax> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva configura el directorio donde se alojan las Listas de Revocación de |
| Certificado (CRL) de las Autoridades de Certificación (CA) de los servidores a |
| los que conecta. Estas se usan para revocar el certificado del servidor remoto |
| en la Autenticació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í que generalmente no sólo tiene que poner |
| los ficheros CRL ahí. También tiene que crear enlaces simbólicos llamados |
| <em>valor-de-hash</em><code>.rN</code>. Y siempre debería asegurarse de que este |
| directorio tiene los enlaces simbólicos apropiados.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLProxyCARevocationPath "/usr/local/apache2/conf/ssl.crl/" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyCARevocationFile</name> |
| <description>Fichero de CRLs de CA codificados en PEM concatenados para la |
| Autenticación Remota de Servidor</description> |
| <syntax>SSLProxyCARevocationFile <em>ruta-al-fichero</em></syntax> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva configura el fichero <em>todo-en-uno</em> donde puede ensamblar |
| las Listas de Revocación de Certificados (CRL) de las Autoridades de |
| Certificación (CA) de los <em>servidores remotos</em> a los que conecta. Estos |
| se usan para la Autenticación Remota de Servidor. Tal fichero es simplemente la |
| concatenación de varios ficheros CRL codificados en PEM, en orden de preferencia. |
| Esto se puede usar alternativamente a/o adicionalmente a |
| <directive module="mod_ssl">SSLProxyCARevocationPath</directive>.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLProxyCARevocationFile "/usr/local/apache2/conf/ssl.crl/ca-bundle-remote-server.crl" |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyCARevocationCheck</name> |
| <description>Activa la comprobación de revocación basada en CRL para la |
| Autenticación Remota de Servidor</description> |
| <syntax>SSLProxyCARevocationCheck chain|leaf|none</syntax> |
| <default>SSLProxyCARevocationCheck none</default> |
| <contextlist><context>server config</context> <context>virtual host</context> |
| <context>proxy section</context></contextlist> |
| |
| <usage> |
| <p> |
| Activa la comprobación de listas de revocación de certificado (CRL) para |
| los <em>servidores remotos</em> a los que conecta. Al menos una de las directivas |
| <directive module="mod_ssl">SSLProxyCARevocationFile</directive> |
| o <directive module="mod_ssl">SSLProxyCARevocationPath</directive> debe estar |
| configurada. Cuando se configura a <code>chain</code> (configuración recomendada), |
| las comprobaciones de CRL se aplican a todos los certificados en la cadena de |
| certificación, mientras que configurándolo a <code>leaf</code> limita las |
| comprobaciones al certificado firmado final. |
| </p> |
| |
| <note> |
| <title>Cuando se configura a <code>chain</code> o <code>leaf</code>, |
| las CRLs <em>deben</em> estar disponibles para la validación con éxito.</title> |
| |
| <p> |
| Antes de la versión 2.4.15, la comprobación de CRL en mod_ssl también tenía |
| éxito cuando no se encontraban CRLs en ninguna de las ubicaciones configuradas |
| con <directive module="mod_ssl">SSLProxyCARevocationFile</directive> |
| o <directive module="mod_ssl">SSLProxyCARevocationPath</directive>. |
| Con la introducción de esta directiva, el comportamiento ha cambiado: cuando |
| la comprobación está habilitada, las CRLs <em>deben</em> estar presentes para |
| que la validación pueda tener éxito - si no fallará con un error |
| <code>"unable to get certificate CRL"</code>. |
| </p> |
| </note> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLProxyCARevocationCheck chain |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLUserName</name> |
| <description>Nombre de variable para determinar el nombre de usuario</description> |
| <syntax>SSLUserName <em>nombre de variable</em></syntax> |
| <contextlist><context>server config</context> |
| <context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>AuthConfig</override> |
| |
| <usage> |
| <p> |
| Esta directiva configura el campo "usuario" en el objeto de solicitud de Apache. |
| Esto se usa por mó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ón <code>FakeBasicAuth</code>, esta directiva |
| controla en su lgar el valor del nombre de usuario embebido dentro de la |
| cabecera de autenticación básica (vea <a href="#ssloptions">SSLOptions</a>).</p> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLUserName SSL_CLIENT_S_DN_CN |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLHonorCipherOrder</name> |
| <description>Opción para forzar el orden de preferencia de cifrados del |
| servidor</description> |
| <syntax>SSLHonorCipherOrder on|off</syntax> |
| <default>SSLHonorCipherOrder off</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <p>Cuando se selecciona un cifrado durante el saludo SSLv3 o TLSv1, normalmente |
| se selecciona en función de las preferencias del cliente. Con esta directiva |
| activada, se usará la preferencia del servidor en su lugar.</p> |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLHonorCipherOrder on |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLCryptoDevice</name> |
| <description>Activar el uso de un hardware acelerador criptográfico</description> |
| <syntax>SSLCryptoDevice <em>engine</em></syntax> |
| <default>SSLCryptoDevice builtin</default> |
| <contextlist><context>server config</context></contextlist> |
| |
| <usage> |
| <p> |
| Esta directiva activa el uso de una placa hardware acelerador criptográfico |
| para aliviar parte de la carga del procesamiento de SSL. Esta directiva |
| sólo puede usarse si el kit de herramientas SSL está 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é nombres de "engine" están soportados, ejecute el comando |
| "<code>openssl engine</code>".</p> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| # For a Broadcom accelerator: |
| SSLCryptoDevice ubsec |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLOCSPEnable</name> |
| <description>Activa la validación OCSP para la cadena de certificados del |
| cliente</description> |
| <syntax>SSLOCSPEnable on|off</syntax> |
| <default>SSLOCSPEnable off</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <p>Esta opción activa la validación OCSP de la cadena de certificados del |
| cliente. Si esta opción está activada, los certificados en la cadena de |
| certificados del cliente se validarán contra un respondedor OCSP despué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ón; vea las directivas |
| <directive module="mod_ssl">SSLOCSPDefaultResponder</directive> y |
| <directive module="mod_ssl">SSLOCSPOverrideResponder</directive> |
| directives.</p> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLVerifyClient on |
| SSLOCSPEnable on |
| SSLOCSPDefaultResponder "http://responder.example.com:8888/responder" |
| SSLOCSPOverrideResponder on |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLOCSPDefaultResponder</name> |
| <description>Configura la URI por defecto del respondedor para la validación |
| OCSP</description> |
| <syntax>SSLOCSDefaultResponder <em>uri</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <p>Esta opción configura el respondedor OCSP por defecto a usar. Si |
| <directive module="mod_ssl">SSLOCSPOverrideResponder</directive> no está |
| activada, la URI facilitada se usará si no hay una URI de respondedor en el |
| certificado que está siendo verificado.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLOCSPOverrideResponder</name> |
| <description>Fuerza el uso de una URI de respondedor por defecto para la |
| validación OCSP</description> |
| <syntax>SSLOCSPOverrideResponder on|off</syntax> |
| <default>SSLOCSPOverrideResponder off</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <p>Esta opción fuerza que se use el respondedor OCSP por defecto para la |
| validación OCSP del certificado, independientemente de si el certificado que |
| se está validando referencia un respondedor OCSP o no.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLOCSPResponseTimeSkew</name> |
| <description>Desviación máxima de tiempo permitida para la validación de la |
| respuesta OCSP</description> |
| <syntax>SSLOCSPResponseTimeSkew <em>segundos</em></syntax> |
| <default>SSLOCSPResponseTimeSkew 300</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <p>Esta opción configura el tiempo máximo permitido de desviación para las |
| respuestas OCSP |
| (cuando se están comprobando sus campos <code>thisUpdate</code> y |
| <code>nextUpdate</code>).</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLOCSPResponseMaxAge</name> |
| <description>Edad máxima permitida para las respuestas OCSP</description> |
| <syntax>SSLOCSPResponseMaxAge <em>segundos</em></syntax> |
| <default>SSLOCSPResponseMaxAge -1</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <p>Esta opción configura la edad máxima permitida de las respuestas |
| OCSP. El valor por defecto (<code>-1</code>) no fuerza una edad máxima, lo que |
| significa que las respuestas OCSP se consideran válidas mientras su campo |
| <code>nextUpdate</code> está en una fecha futura.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLOCSPResponderTimeout</name> |
| <description>Expiración de las consultas OCSP</description> |
| <syntax>SSLOCSPResponderTimeout <em>segundos</em></syntax> |
| <default>SSLOCSPResponderTimeout 10</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| |
| <usage> |
| <p>Esta opción configura el tiempo de expiración para las consultas a los |
| respondedores OCSP, cuando <directive module="mod_ssl">SSLOCSPEnable</directive> |
| está activado.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLOCSPUseRequestNonce</name> |
| <description>Usar un nonce dentro de las consultas OCSP</description> |
| <syntax>SSLOCSPUseRequestNonce on|off</syntax> |
| <default>SSLOCSPUseRequestNonce on</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible en httpd 2.4.10 y posterior</compatibility> |
| |
| <usage> |
| <p>Esta opción determina si las consultas a respondedores OCSP deberí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ón debería estar configuada a |
| <code>off</code>.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLOCSPNoverify</name> |
| <description>Salta la verificación de certificados de respondedor |
| OCSP</description> |
| <syntax>SSLOCSPNoverify <em>On/Off</em></syntax> |
| <default>SSLOCSPNoverify Off</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible en httpd 2.4.26 y posterior, si se usa OpenSSL 0.9.7 o |
| posterior</compatibility> |
| <usage> |
| <p>Salta la verificación de certificados del respondedor OCSP, generalmente |
| útil cuando se comprueba un servidor OCSP.</p> |
| </usage> |
| </directivesynopsis> |
| |
| |
| <directivesynopsis> |
| <name>SSLOCSPResponderCertificateFile</name> |
| <description>Conjunto de certificados de respondedor OCSP confiables codificados |
| en PEM</description> |
| <syntax>SSLOCSPResponderCertificateFile <em>fichero</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible en httpd 2.4.26 y posterior, si se usa con OpenSSL |
| 0.9.7 o posterior</compatibility> |
| <usage> |
| |
| <p>Esto aporta una lista de certificados confiables de respondedor OCSP para |
| ser usados durante la validación de certificados de respondedor OCSP. Se confía |
| en los certificados facilitados de manera implícita sin ninguna comprobación |
| posterior. Esto se usa generalmente cuando el certificado del respondedor |
| OCSP es autofirmado o se omite de la respuesta.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLOCSPProxyURL</name> |
| <description>URL de Proxy a utilizar para las consultas OCSP</description> |
| <syntax>SSLOCSPProxyURL <em>url</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible en httpd 2.4.19 y posterior</compatibility> |
| |
| <usage> |
| <p>Esta opción permite configurar la URL de un proxy HTTP que debería usarse para |
| todas las consultas a respondedores OCSP.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLInsecureRenegotiation</name> |
| <description>Opción para activar soporte de renegociación |
| insegura</description> |
| <syntax>SSLInsecureRenegotiation on|off</syntax> |
| <default>SSLInsecureRenegotiation off</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible si se usa OpenSSL 0.9.8m o posterior</compatibility> |
| |
| <usage> |
| <p>Tal y como se especificó originalmente, todas las versiones de protocolo SSL y |
| TLS (incluído TLS/1.2) eran vulnerables a ataques tipo Man-in-the-Middle |
| (<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2009-3555">CVE-2009-3555</a>) |
| durante una renegociación. Esta vulnerabilidad permitía a un atancante poner |
| un prefijo a un texto plano específico en la petición HTTP tal y como se veía |
| en el servidor web. Se desarrolló una extensión del protocolo para esta vulnerabilidad si estaba soportada tanto por el cliente como por el |
| servidor.</p> |
| |
| <p>Si <module>mod_ssl</module> está compilado contra la versión OpenSSL 0.9.8m |
| o posterior, por defecto la renegociación sólo está soportada por clientes |
| que tengan soporte para la nueva extensión del protocolo. Si esta directiva está |
| activada, la renegociación se permitirá con los clientes antiguos (no |
| parcheados), aunque de manera insegura.</p> |
| |
| <note type="warning"><title>Aviso de Seguridad</title> |
| <p>Si se activa esta directiva, las conexiones SSL serán vulnerables a ataques |
| Man-in-the-Middle de prefijo tal y como se describe en |
| <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2009-3555">CVE-2009-3555</a>.</p> |
| </note> |
| |
| <example><title>Ejemplo</title> |
| <highlight language="config"> |
| SSLInsecureRenegotiation on |
| </highlight> |
| </example> |
| |
| <p>La variable de entorno <code>SSL_SECURE_RENEG</code> se puede usar desde un |
| script CGI o desde SSI para determinar si la renegociación segura está soportada |
| para la conexión SSL en cuestión.</p> |
| |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLUseStapling</name> |
| <description>Activa stapling de las respuestas OCSP en el saludo |
| TLS</description> |
| <syntax>SSLUseStapling on|off</syntax> |
| <default>SSLUseStapling off</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible si se usa OpenSSL 0.9.8h o posterior</compatibility> |
| |
| <usage> |
| <p>Esta opción activa el stapling de OCSP, tal y como se define en la extensión |
| TLS "Solicitud de Estado de Certificado" especificada en el RFC 6066. Si está |
| activado (y solicitado por el cliente), mod_ssl incluirá una respuesta OCSP de |
| su propio certificado en el saludo TLS. Configurar una |
| <directive module="mod_ssl">SSLStaplingCache</directive> 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ía tenerse en cuenta que con la especificación RFC 6066, la |
| respuesta de <code>CertificateStatus</code> del servidor podría sólo incluir |
| una respuesta OCSP de un sólo certificado. Para los certificados de servidor |
| con certificados de CA intermedias en su cadena (lo típico hoy en día), |
| stapling en su implementación actual por tanto sólo consigue su objetivo |
| parcialmente de "ahorrar varias peticiones y consumo de recursos" - vea también |
| el <a href="http://www.ietf.org/rfc/rfc6961.txt">RFC 6961</a> |
| (Extensión de TLS del Estado de Múltiples Certificados). |
| </p> |
| |
| <p>Cuando el stapling de OCSP está activado, se usa el mutex |
| <code>ssl-stapling</code> para controlar el acceso a la cahe de stapling de OCSP |
| para prevenir corrupció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 |
| <directive module="core">Mutex</directive>. |
| </p> |
| |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLStaplingCache</name> |
| <description>Configura la cache del stapling de OCSP</description> |
| <syntax>SSLStaplingCache <em>tipo</em></syntax> |
| <contextlist><context>server config</context></contextlist> |
| <compatibility>Disponible si se usa OpenSSL 0.9.8h o posterior</compatibility> |
| |
| <usage> |
| <p>Configura la cache utilizada para almacenar las respuestas OCSP que se |
| incluyen en el saludo TLS si |
| <directive module="mod_ssl">SSLUseStapling</directive> está activada. La |
| coniguración de la cache es obligatoria para el stapling the OCSP. Con la |
| excepción de <code>none</code> y <code>nonenotnull</code>, se da soporte a |
| los mismos tipos de almacenamiento que con |
| <directive module="mod_ssl">SSLSessionCache</directive>.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLStaplingResponseTimeSkew</name> |
| <description>Tiempo máximo permitido para la validación del stapling |
| OCSP</description> |
| <syntax>SSLStaplingResponseTimeSkew <em>segundos</em></syntax> |
| <default>SSLStaplingResponseTimeSkew 300</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible si se usa OpenSSL 0.9.8h o posterior</compatibility> |
| |
| <usage> |
| <p>Esta opción configura el tiempo máximo de desviació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ólo aplicable si |
| <directive module="mod_ssl">SSLUseStapling</directive> está activada.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLStaplingResponderTimeout</name> |
| <description>Tiempo máximo para las consultas de stapling de OCSP</description> |
| <syntax>SSLStaplingResponderTimeout <em>segundos</em></syntax> |
| <default>SSLStaplingResponderTimeout 10</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible si se usa OpenSSL 0.9.8h o posterior</compatibility> |
| |
| <usage> |
| <p>Esta opción configura el tiempo máximo para consultas a respondedores OCSP |
| cuando <directive module="mod_ssl">SSLUseStapling</directive> está activada y |
| mod_ssl está consultando a un respondedor por motivos de stapling de OCSP.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLStaplingResponseMaxAge</name> |
| <description>Edad máxima permitida para respuesta de stapling OCSP</description> |
| <syntax>SSLStaplingResponseMaxAge <em>segundos</em></syntax> |
| <default>SSLStaplingResponseMaxAge -1</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible si se usa OpenSSL 0.9.8h o posterior</compatibility> |
| |
| <usage> |
| <p>Esta opción configura la edad máxima permitida ("frescura") cuando se |
| consideran las respuestas OCSP para stapling, p. ej. cuando |
| <directive module="mod_ssl">SSLUseStapling</directive> está activada. |
| El valor por defecto (<code>-1</code>) no fuerza una edad máxima, lo que |
| significa que las respuestas OCSP se consideran válidas mientras el valor del |
| campo <code>nextUpdate</code> está en una fecha futura.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLStaplingStandardCacheTimeout</name> |
| <description>Número de segundos antes de expirar las respuestas en la cache del |
| stapling de OCSP</description> |
| <syntax>SSLStaplingStandardCacheTimeout <em>segundos</em></syntax> |
| <default>SSLStaplingStandardCacheTimeout 3600</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible si se usa OpenSSL 0.9.8h o posterior</compatibility> |
| |
| <usage> |
| <p>Configura el límite de tiempo en segundos antes de que las respuestas en el |
| cache de stapling de OCSP (configuradas con |
| <directive module="mod_ssl">SSLStaplingCache</directive>) expiren. Esta |
| directiva aplica a respuestas <em>válidas</em>, mientras que |
| <directive module="mod_ssl">SSLStaplingErrorCacheTimeout</directive> se |
| usa para controlar el límite de tiempo para respuestas inválidas/indisponibles. |
| </p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLStaplingReturnResponderErrors</name> |
| <description>Pasa los errores relacionados con stapling de OCSP al cliente |
| </description> |
| <syntax>SSLStaplingReturnResponderErrors on|off</syntax> |
| <default>SSLStaplingReturnResponderErrors on</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible si se usa OpenSSL 0.9.8h o posterior</compatibility> |
| |
| <usage> |
| <p>Cuando se activa, mod_ssl pasará las respuestas de consultas sin éxito |
| relacionadas con el stapling OCSP (tales como respuestas con un estado general |
| que no sea otro que "con é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ólo respuestas indicando un estado de |
| certificado "bueno" se incluirán en el saludo TLS.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLStaplingFakeTryLater</name> |
| <description>Sintetiza respuestas "tryLater" para consultas fallidas de stapling |
| de OCSP</description> |
| <syntax>SSLStaplingFakeTryLater on|off</syntax> |
| <default>SSLStaplingFakeTryLater on</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible si se usa OpenSSL 0.9.8h o posterior</compatibility> |
| |
| <usage> |
| <p>Cuando se activa y una consulta de stapling a un respondedor OCSP falla, |
| mod_ssl sintetizará una respuesta "tryLater" para el cliente. sólo efectiva si |
| <directive module="mod_ssl">SSLStaplingReturnResponderErrors</directive> |
| también está activada.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLStaplingErrorCacheTimeout</name> |
| <description>Número de segundos antes de expirar respuestas inválidas en la |
| cache del stapling de OCSP</description> |
| <syntax>SSLStaplingErrorCacheTimeout <em>segundos</em></syntax> |
| <default>SSLStaplingErrorCacheTimeout 600</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible si se usa OpenSSL 0.9.8h o posterior</compatibility> |
| |
| <usage> |
| <p>Configura el tiempo límite en segundos antes de que las respuestas |
| <em>inválidas</em> en la cache de stapling OCSP (configuradas con |
| <directive module="mod_ssl">SSLStaplingCache</directive>) expiren. Para |
| configurar el tiempo límite de respuestas válidas, vea |
| <directive module="mod_ssl">SSLStaplingStandardCacheTimeout</directive>.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLStaplingForceURL</name> |
| <description>Sobreescribe la URI especificada por el respondedor OCSP |
| especificada en la extensión AIA del certificado</description> |
| <syntax>SSLStaplingForceURL <em>uri</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible si se usa OpenSSL 0.9.8h o posterior</compatibility> |
| |
| <usage> |
| <p>Esta directiva sobreescribe la URI de un respondedor OCSP obtenida de la |
| extensión authorityInfoAccess (AIA) del certificado. |
| Un uso potencial puede ser cuando se usa un proxy para hacer consultas OCSP.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLSessionTicketKeyFile</name> |
| <description>Clave persistente de encriptación/desencriptación para ticket de |
| sesión TLS</description> |
| <syntax>SSLSessionTicketKeyFile <em>ruta-al-fichero</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible en httpd 2.4.0 y posterior, si se usaOpenSSL 0.9.8h o |
| posterior</compatibility> |
| |
| <usage> |
| <p>Opcionalmente configura una clave secreta para la encriptación y |
| desencriptación de tickets de sesió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ón de sesiones TLS |
| deberí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ía. En un sistema basado en |
| Unix, un fichero clave de ticket puede generarse como sigue:</p> |
| |
| <example> |
| dd if=/dev/random of=/path/to/file.tkey bs=1 count=48 |
| </example> |
| |
| <p>Las claves de ticket deberían rotarse (sustituirse) frecuentemente, puesto |
| que esta es la única forma de invalidar sesiones de ticket existentes - Openssl |
| actualmente no permite especificar un tiempo límite de validez de tickets. Una |
| nueva clave de ticket sólo se usa después de reiniciar el servidor web. |
| Todas las sesiones de tickets existentes son inválidas después de un |
| reinicio.</p> |
| |
| <note type="warning"> |
| <p>El fichero clave de ticket contiene material sensible de claves y debería |
| protegerse con permisos de fichero de una manera similar a las que se deben |
| usar para los ficheros utilizados con |
| <directive module="mod_ssl">SSLCertificateKeyFile</directive>.</p> |
| </note> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLCompression</name> |
| <description>Activa la compresión a nivel de SSL</description> |
| <syntax>SSLCompression on|off</syntax> |
| <default>SSLCompression off</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>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ía ser <code>on</code> en la versión |
| 2.4.3</compatibility> |
| |
| <usage> |
| <p>Esta directiva permite activar la compresión a nivel de SSL.</p> |
| <note type="warning"> |
| <p>Activar la compresión provoca problemas de seguridad en la mayoría de las |
| configuraciones (como el conocido ataque CRIME).</p> |
| </note> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLSessionTickets</name> |
| <description>Activa o desactiva el uso de tickets de sesión TLS</description> |
| <syntax>SSLSessionTickets on|off</syntax> |
| <default>SSLSessionTickets on</default> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible en httpd 2.4.11 y posterior, si se usa OpenSSL 0.9.8f |
| o posterior.</compatibility> |
| |
| <usage> |
| <p>Esta directiva permite activar o desactivar el uso de los tickets de sesión |
| TLS (RFC 5077).</p> |
| <note type="warning"> |
| <p>Los tickets de sesió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> |
| </note> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLOpenSSLConfCmd</name> |
| <description>Configura parámetros OpenSSL a través de su API <em>SSL_CONF</em> |
| </description> |
| <syntax>SSLOpenSSLConfCmd <em>nombre-de-comando</em> |
| <em>parámetro-de-comando</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible en httpd 2.4.8 y posterior, si se usa OpenSSL 1.0.2 o |
| posterior</compatibility> |
| |
| <usage> |
| <p>Esta directiva expone <em>SSL_CONF</em> de la API de OpenSSL para mod_ssl, |
| permitiendo una configuración flexible de parámetros para OpenSSL sin la |
| necesidad de implementar directivas adicionales de <module>mod_ssl</module> |
| cuando se añaden nuevas características a OpenSSL.</p> |
| |
| <p>El conjunto de comandos disponibles de |
| <directive>SSLOpenSSLConfCmd</directive> depende de la versión OpenSSL utilizada |
| para <module>mod_ssl</module> (al menos la versión 1.0.2 es necesaria). Para una |
| lista de nombres de comandos |
| soportados, vea la sección <em>Comandos soportados para fichero de |
| configuración</em> en la pá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 <directive>SSLOpenSSLConfCmd</directive> se pueden |
| usar como alternativa a directivas existentes (tales como |
| <directive module="mod_ssl">SSLCipherSuite</directive> o |
| <directive module="mod_ssl">SSLProtocol</directive>), |
| aunque debería tenerse en cuenta que la sintaxis / valores disponibles para |
| parámetros pueden ser diferentes.</p> |
| |
| <example><title>Ejemplos</title> |
| <highlight language="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 |
| </highlight> |
| </example> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis type="section" idtype="section"> |
| <name>SSLPolicyDefine</name> |
| <description>Define un conjunto de nombres de configuraciones SSL</description> |
| <syntax><SSLPolicyDefine <em>nombre</em>></syntax> |
| <contextlist><context>server config</context></contextlist> |
| <compatibility>Disponible in httpd 2.4.30 y posterior</compatibility> |
| |
| <usage> |
| <p>Esta directiva define un conjunto de configuraciones SSL y les da un nombre. |
| Este nombre se puede usar en las directivas <directive>SSLPolicy</directive> y |
| <directive>SSLProxyPolicy</directive> para aplicar esta configuración en el |
| contexto actual.</p> |
| |
| <example><title>Definición y Uso de una Política</title> |
| <highlight language="config"> |
| <SSLPolicyDefine safe-stapling> |
| SSLUseStapling on |
| SSLStaplingResponderTimeout 2 |
| SSLStaplingReturnResponderErrors off |
| SSLStaplingFakeTryLater off |
| SSLStaplingStandardCacheTimeout 86400 |
| </SSLPolicyDefine> |
| |
| ... |
| <VirtualHost...> |
| SSLPolicy safe-stapling |
| ... |
| </highlight> |
| </example> |
| |
| <p>Por un lado, esto puede hacer que la configuración del servidor sea mucho |
| más fácil de <em>leer</em> y <em>mantener</em>. Por otro lado, está destinada |
| a hacer SSL más fácil y seguro de <em>usar</em>. Para lo último, Apache httpd |
| viene con un conjunto de políticas pre-definidas que reflejan buenas prácticas |
| de código abierto. La política "modern", por ejemplo, lleva las configuraciones |
| para hacer que su servidor trabaje de manera segura y compatible con navegadores |
| actuales.</p> |
| |
| <p>La lista de políticas predefinidas en su Apache pueden obtenerse lanzando |
| el siguiente comando. Esta lista muestra las configuraciones detalladas con |
| las que está definida cada política:</p> |
| |
| <example><title>Lista todas las Políticas Definidas</title> |
| <highlight language="sh"> |
| httpd -t -D DUMP_SSL_POLICIES |
| </highlight> |
| </example> |
| |
| <p>Esta directiva sólo se puede usar en la configuración del servidor (contexto |
| global). Puede usar la mayoría de las directivas SSL*, sin embargo algunas sólo |
| se pueden usar una vez y no se pueden utilizar dentro de definiciones de |
| política. Estas son <directive>SSLCryptoDevice</directive>, |
| <directive>SSLRandomSeed</directive>, |
| <directive>SSLSessionCache</directive> y |
| <directive>SSLStaplingCache</directive>. |
| </p> |
| |
| <p>Dos políticas no pueden tener el mismo nombre. Sin embargo, las políticas se |
| pueden redefinir:</p> |
| |
| <example><title>Sobreescribir Políticas</title> |
| <highlight language="config"> |
| <SSLPolicyDefine proxy-trust> |
| SSLProxyVerify require |
| </SSLPolicyDefine> |
| ... |
| <SSLPolicyDefine proxy-trust> |
| SSLProxyVerify none |
| </SSLPolicyDefine> |
| </highlight> |
| </example> |
| |
| <p>Las definiciones de Política se <em>añaden</em> en el orden que aparecen, |
| pero se <em>aplican</em> cuando se ha leído toda la configuración. Esto |
| significa que cualquier uso de 'proxy-trust' significará 'SSLProxyVerify none'. |
| La primera definición no tiene ningún efecto. Esto permite que las políticas |
| pre-instaladas sean sustituidas sin la necesidad de desactivarlas.</p> |
| |
| <p>Además de reemplazar políticas, redefiniciones pueden alterar un aspecto de |
| una política:</p> |
| |
| <example><title>Policy Redefine</title> |
| <highlight language="config"> |
| <SSLPolicyDefine proxy-trust> |
| SSLProxyVerify require |
| </SSLPolicyDefine> |
| ... |
| <SSLPolicyDefine proxy-trust> |
| SSLPolicy proxy-trust |
| SSLProxyVerifyDepth 10 |
| </SSLPolicyDefine> |
| </highlight> |
| </example> |
| |
| <p>Esto re-utiliza todas las configuraciones de un 'proxy-trust' previo y añade |
| una directiva encima de él. Todas las demás todavía aplican. Esto es muy útil |
| cuando las políticas pre-definidas (por Apache mismo o un distribuidor) son |
| <em>casi</em> como lo que necesitas. Previamente, tales definiciones fueron |
| (copiadas y) editadas. Esto hacía que actualizarlas fuera difícil. Ahora pueden |
| configurarse así:</p> |
| |
| <example><title>Ajusta una Política Pre-Definida</title> |
| <highlight language="config"> |
| Include ssl-policies.conf |
| |
| <SSLPolicyDefine modern> |
| SSLPolicy modern |
| SSLProxyVerify none |
| </SSLPolicyDefine> |
| </highlight> |
| </example> |
| |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLPolicy</name> |
| <description>Aplica una Política SSL por nombre</description> |
| <syntax>SSLPolicy <em>nombre</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible en httpd 2.5.0 y posterior</compatibility> |
| |
| <usage> |
| <p>Esta directiva aplica el conjunto de directivas SSL definidas bajo |
| 'nombre' (vea <directive type="section">SSLPolicyDefine</directive>) como las |
| configuraciones <em>base</em> en el contexto actual. Apache viene con las |
| siguientes políticas pre-definidas de Mozilla, los desarrolladores del |
| navegador Firefox |
| (<a href="https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations"> |
| vea aquí para una descripció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í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 último recurso.</li> |
| </ul> |
| |
| <p>Puede comprobar una descripción detallada de todas las políticas definidas |
| a través de la línea de comandos:</p> |
| <example><title>Listar Todas las Políticas Definidas</title> |
| <highlight language="sh"> |
| httpd -t -D DUMP_SSL_POLICIES |
| </highlight> |
| </example> |
| |
| <p>Una SSLPolicy define la línea base para el contexto en la que se utiliza. Eso |
| significa que cualquier otra directiva SSL en el mismo contexto la sobrescribirá. |
| Como ejemplo de esto, vea el valor efectivo de |
| <directive>SSLProtocol</directive> en la siguiente configuración:</p> |
| |
| <example><title>Precedencia de Política</title> |
| <highlight language="config"> |
| <VirtualHost...> # efectivo en: 'all' |
| SSLPolicy modern |
| SSLProtocol all |
| </VirtualHost> |
| |
| <VirtualHost...> # efectivo en: 'all' |
| SSLProtocol all |
| SSLPolicy modern |
| </VirtualHost> |
| |
| SSLPolicy modern |
| <VirtualHost...> # efectivo en: 'all' |
| SSLProtocol all |
| </VirtualHost> |
| |
| SSLProtocol all |
| <VirtualHost...> # efectivo en: '+TLSv1.2' |
| SSLPolicy modern |
| </VirtualHost> |
| </highlight> |
| </example> |
| |
| <p>Puede haber más de una política aplicada en un contexto. La últimas |
| sobrescribiendo las previas: :</p> |
| |
| <example><title>Ordenando Políticas</title> |
| <highlight language="config"> |
| <VirtualHost...> # protocolo efectivo: 'all -SSLv3' |
| SSLPolicy modern |
| SSLPolicy intermediate |
| </VirtualHost> |
| |
| <VirtualHost...> # protocolo efectivo: '+TLSv1.2' |
| SSLPolicy intermediate |
| SSLPolicy modern |
| </VirtualHost> |
| </highlight> |
| </example> |
| |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SSLProxyPolicy</name> |
| <description>Aplica directivas de tipo SSLProxy* en una SSLPolicy</description> |
| <syntax>SSLProxyPolicy <em>nombre</em></syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context></contextlist> |
| <compatibility>Disponible en httpd 2.4.30 y posterior</compatibility> |
| |
| <usage> |
| <p>Esta directiva es similar a <directive>SSLPolicy</directive>, pero aplica |
| sólo a directivas de SSLProxy* definidas en la política. Esto ayuda cuando |
| necesita distintas políticas para los clientes y los backends:</p> |
| |
| <example><title>Otras Políticas sólo para Proxy</title> |
| <highlight language="config"> |
| SSLPolicy modern |
| SSLProxyPolicy intermediate |
| </highlight> |
| </example> |
| |
| <p>En este ejemplo, la política 'modern' se aplica a los clientes y backends. |
| Entonces a las partes de los backend se sobrescriben con las configuraciones |
| de políticas de 'intermediate'.</p> |
| </usage> |
| </directivesynopsis> |
| |
| </modulesynopsis> |