SSL/TLS

# Cifrado Robusto SSL/TLS: Compatibilidad

En esta página se cubre la compatibilidad entre el módulo mod_ssl y otras soluciones SSL. mod_ssl no es la única solución de SSL para Apache HTTPD Server; Para productos adicionales que están (o estaban) disponibles como Ben Laurie's en su web, que ahora no existe (http://www.apache-ssl.org/), donde fue la derivación original en 1998 del módulo. Tanto el sistema de Red Hat Secure Web Server se basó en mod_ssl así como la versión comercial del módulo SSL de Covalent's Raven, y por último, C2Net (ahora de Red Hat) basado en una rama de evaluación del proyecto llamado Sioux con un "Stronghold 2.x" y basado en mod_ssl desde la versión "Stronghold 3.x".

mod_ssl proporciona un superconjunto de la funcionalidad de todas las demás soluciones, por lo que será simple la migración de módulos antiguos al mod_ssl. Las directivas de configuración y nombres de variables de entorno usadas por módulos antiguos de SSL varían mucho de mod_ssl; tablas de correspondencia con lo usado por mod_ssl, se detallan a continuación.

# Directivas de Configuración

La correspondencia entre las directivas de configuración usadas por Apache-SSL 1.x y mod_ssl 2.0.x se dan en la Tabla 1. La correspondencia de Sioux 1.x y Stronghold 2.x es solo parcial debido a funcionalidades especiales en estas interfaces que mod_ssl no proporciona.

## Table 1: Correspondencia de Directivas de Configuración

Directivas Antiguas | Directivas mod_ssl | Comentarios
--- | --- | ---
Compatibilidad de Apache-SSL 1.x & mod_ssl 2.0.x:
`SSLEnable` | `SSLEngine on` | compactified
`SSLDisable` | `SSLEngine off` | compactified
`SSLLogFile` fichero | `` | Use per-module LogLevel setting instead.
`SSLRequiredCiphers` spec | `SSLCipherSuite` spec | renombrada
`SSLRequireCipher` c1 ... | `SSLRequire %{SSL_CIPHER} in {"`c1`", ...}` | generalized
`SSLBanCipher` c1 ... | `SSLRequire not (%{SSL_CIPHER} in {"`c1`", ...})` | generalized
`SSLFakeBasicAuth` | `SSLOptions +FakeBasicAuth` | merged
`SSLCacheServerPath` dir | - | functionality removed
`SSLCacheServerPort` integer | - | functionality removed
Compatibilidad Apache-SSL 1.x :
`SSLExportClientCertificates` | `SSLOptions +ExportCertData` | merged
`SSLCacheServerRunDir` dir | - | funcionalidad no soportada
Compatibilidad Sioux 1.x :
`SSL_CertFile` fichero | `SSLCertificateFile` fichero | renombrada
`SSL_KeyFile` fichero | `SSLCertificateKeyFile` fichero | renombrada
`SSL_CipherSuite` arg | `SSLCipherSuite` arg | renombrada
`SSL_X509VerifyDir` arg | `SSLCACertificatePath` arg | renombrada
`SSL_Log` fichero | `-` | Use per-module LogLevel setting instead.
`SSL_Connect` flag | `SSLEngine` flag | renombrada
`SSL_ClientAuth` arg | `SSLVerifyClient` arg | renombrada
`SSL_X509VerifyDepth` arg | `SSLVerifyDepth` arg | renombrada
`SSL_FetchKeyPhraseFrom` arg | - | not directly mappable; use SSLPassPhraseDialog
`SSL_SessionDir` dir | - | not directly mappable; use SSLSessionCache
`SSL_Require` expr | - | not directly mappable; use SSLRequire
`SSL_CertFileType` arg | - | funcionalidad no soportada
`SSL_KeyFileType` arg | - | funcionalidad no soportada
`SSL_X509VerifyPolicy` arg | - | funcionalidad no soportada
`SSL_LogX509Attributes` arg | - | funcionalidad no soportada
Compatibilidad Stronghold 2.x :
`StrongholdAccelerator` engine | `SSLCryptoDevice` engine | renombrada
`StrongholdKey` dir | - | funcionalidad no requerida
`StrongholdLicenseFile` dir | - | funcionalidad no requerida
`SSLFlag` flag | `SSLEngine` flag | renombrada
`SSLSessionLockFile` fichero | `SSLMutex` fichero | renombrada
`SSLCipherList` spec | `SSLCipherSuite` spec | renombrada
`RequireSSL` | `SSLRequireSSL` | renombrada
`SSLErrorFile` fichero | - | funcionalidad no soportada
`SSLRoot` dir | - | funcionalidad no soportada
`SSL_CertificateLogDir` dir | - | funcionalidad no soportada
`AuthCertDir` dir | - | funcionalidad no soportada
`SSL_Group` name | - | funcionalidad no soportada
`SSLProxyMachineCertPath` dir | `SSLProxyMachineCertificatePath` dir | renombrada
`SSLProxyMachineCertFile` fichero | `SSLProxyMachineCertificateFile` fichero | renombrada
`SSLProxyCipherList` spec | `SSLProxyCipherSpec` spec | renombrada

# Variables de Entorno

Correlación entre las variables de entorno usadas por soluciones antiguas de SSL y las usadas por mod_ssl que se muestran en la Table 2.

## Tabla 2: Derivación de las Variables de Entorno

Variable Antigua | Variable mod_ssl | Comentario
--- | --- | ---
`SSL_PROTOCOL_VERSION` | `SSL_PROTOCOL` | renombrada
`SSLEAY_VERSION` | `SSL_VERSION_LIBRARY` | renombrada
`HTTPS_SECRETKEYSIZE` | `SSL_CIPHER_USEKEYSIZE` | renombrada
`HTTPS_KEYSIZE` | `SSL_CIPHER_ALGKEYSIZE` | renombrada
`HTTPS_CIPHER` | `SSL_CIPHER` | renombrada
`HTTPS_EXPORT` | `SSL_CIPHER_EXPORT` | renombrada
`SSL_SERVER_KEY_SIZE` | `SSL_CIPHER_ALGKEYSIZE` | renombrada
`SSL_SERVER_CERTIFICATE` | `SSL_SERVER_CERT` | renombrada
`SSL_SERVER_CERT_START` | `SSL_SERVER_V_START` | renombrada
`SSL_SERVER_CERT_END` | `SSL_SERVER_V_END` | renombrada
`SSL_SERVER_CERT_SERIAL` | `SSL_SERVER_M_SERIAL` | renombrada
`SSL_SERVER_SIGNATURE_ALGORITHM` | `SSL_SERVER_A_SIG` | renombrada
`SSL_SERVER_DN` | `SSL_SERVER_S_DN` | renombrada
`SSL_SERVER_CN` | `SSL_SERVER_S_DN_CN` | renombrada
`SSL_SERVER_EMAIL` | `SSL_SERVER_S_DN_Email` | renombrada
`SSL_SERVER_O` | `SSL_SERVER_S_DN_O` | renombrada
`SSL_SERVER_OU` | `SSL_SERVER_S_DN_OU` | renombrada
`SSL_SERVER_C` | `SSL_SERVER_S_DN_C` | renombrada
`SSL_SERVER_SP` | `SSL_SERVER_S_DN_SP` | renombrada
`SSL_SERVER_L` | `SSL_SERVER_S_DN_L` | renombrada
`SSL_SERVER_IDN` | `SSL_SERVER_I_DN` | renombrada
`SSL_SERVER_ICN` | `SSL_SERVER_I_DN_CN` | renombrada
`SSL_SERVER_IEMAIL` | `SSL_SERVER_I_DN_Email` | renombrada
`SSL_SERVER_IO` | `SSL_SERVER_I_DN_O` | renombrada
`SSL_SERVER_IOU` | `SSL_SERVER_I_DN_OU` | renombrada
`SSL_SERVER_IC` | `SSL_SERVER_I_DN_C` | renombrada
`SSL_SERVER_ISP` | `SSL_SERVER_I_DN_SP` | renombrada
`SSL_SERVER_IL` | `SSL_SERVER_I_DN_L` | renombrada
`SSL_CLIENT_CERTIFICATE` | `SSL_CLIENT_CERT` | renombrada
`SSL_CLIENT_CERT_START` | `SSL_CLIENT_V_START` | renombrada
`SSL_CLIENT_CERT_END` | `SSL_CLIENT_V_END` | renombrada
`SSL_CLIENT_CERT_SERIAL` | `SSL_CLIENT_M_SERIAL` | renombrada
`SSL_CLIENT_SIGNATURE_ALGORITHM` | `SSL_CLIENT_A_SIG` | renombrada
`SSL_CLIENT_DN` | `SSL_CLIENT_S_DN` | renombrada
`SSL_CLIENT_CN` | `SSL_CLIENT_S_DN_CN` | renombrada
`SSL_CLIENT_EMAIL` | `SSL_CLIENT_S_DN_Email` | renombrada
`SSL_CLIENT_O` | `SSL_CLIENT_S_DN_O` | renombrada
`SSL_CLIENT_OU` | `SSL_CLIENT_S_DN_OU` | renombrada
`SSL_CLIENT_C` | `SSL_CLIENT_S_DN_C` | renombrada
`SSL_CLIENT_SP` | `SSL_CLIENT_S_DN_SP` | renombrada
`SSL_CLIENT_L` | `SSL_CLIENT_S_DN_L` | renombrada
`SSL_CLIENT_IDN` | `SSL_CLIENT_I_DN` | renombrada
`SSL_CLIENT_ICN` | `SSL_CLIENT_I_DN_CN` | renombrada
`SSL_CLIENT_IEMAIL` | `SSL_CLIENT_I_DN_Email` | renombrada
`SSL_CLIENT_IO` | `SSL_CLIENT_I_DN_O` | renombrada
`SSL_CLIENT_IOU` | `SSL_CLIENT_I_DN_OU` | renombrada
`SSL_CLIENT_IC` | `SSL_CLIENT_I_DN_C` | renombrada
`SSL_CLIENT_ISP` | `SSL_CLIENT_I_DN_SP` | renombrada
`SSL_CLIENT_IL` | `SSL_CLIENT_I_DN_L` | renombrada
`SSL_EXPORT` | `SSL_CIPHER_EXPORT` | renombrada
`SSL_KEYSIZE` | `SSL_CIPHER_ALGKEYSIZE` | renombrada
`SSL_SECKEYSIZE` | `SSL_CIPHER_USEKEYSIZE` | renombrada
`SSL_SSLEAY_VERSION` | `SSL_VERSION_LIBRARY` | renombrada
`SSL_STRONG_CRYPTO` | `-` | No soportado por mod_ssl
`SSL_SERVER_KEY_EXP` | `-` | No soportado por mod_ssl
`SSL_SERVER_KEY_ALGORITHM` | `-` | No soportado por mod_ssl
`SSL_SERVER_KEY_SIZE` | `-` | No soportado por mod_ssl
`SSL_SERVER_SESSIONDIR` | `-` | No soportado por mod_ssl
`SSL_SERVER_CERTIFICATELOGDIR` | `-` | No soportado por mod_ssl
`SSL_SERVER_CERTFILE` | `-` | No soportado por mod_ssl
`SSL_SERVER_KEYFILE` | `-` | No soportado por mod_ssl
`SSL_SERVER_KEYFILETYPE` | `-` | No soportado por mod_ssl
`SSL_CLIENT_KEY_EXP` | `-` | No soportado por mod_ssl
`SSL_CLIENT_KEY_ALGORITHM` | `-` | No soportado por mod_ssl
`SSL_CLIENT_KEY_SIZE` | `-` | No soportado por mod_ssl

# Funciones Personalizadas de Log

Cuando está habilitado el módulo mod_ssl, existen funciones adicionales para el Formato de Log Personalizado mod_log_config como se documenta en el capítulo referenciado. Junto con la función de formato de eXtensión ```%{`varname`}x`'' la cual puede ser usada para extender cualquier variable proporcionada por cualquier módulo, una función criptográfica de formato adicional ```%{`name`}c`'' cryptography format function exists for backward compatibility. The currently implemented function calls are listed in Table 3.

## Table 3: Funciones criptográficas de Log Personalizado

Llamada a la Función | Descripción
--- | ---
`%...{version}c` | SSL protocol version
`%...{cipher}c` | SSL cipher
`%...{subjectdn}c` | Client Certificate Subject Distinguished Name
`%...{issuerdn}c` | Client Certificate Issuer Distinguished Name
`%...{errcode}c` | Certificate Verification Error (numerical)
`%...{errstr}c` | Certificate Verification Error (string)