Implantación de SSL - TLS en Apache 2.0 : Mod_Ssl

Variables de entorno

El servidor web Apache 2.0 ofrece un mecanismo para almacenar información en variables especiales que se llaman variables de entorno. Esta información puede ser usada para controlar diversas operaciones, como por ejemplo almacenar datos en ficheros de registro o controlar el acceso al servidor. Las variables de entorno se usan también como un mecanismo de comunicación con programas externos, como por ejemplo scripts CGI. Las variables de entorno de Apache se almacenan y manipulan en la estructura interna del servidor.

El modo más básico de especificar el valor de una variable de entorno en Apache, es usando la directiva incondicional SetEnv. Las variables pueden pasarse también desde el shell en el que se inició el servidor, usando la directiva PassEnv.

Las variables de entorno usadas en la implantación de SSL/TLS son las que se muestran a continuación.

HTTPS: Indica el uso de https en lugar de http

SSL_PROTOCOL: La versión del protocolo SSL (SSLv2, SSLv3, TLSv1)

SSL_SESSION_ID: El identificador de sesión codificado en formato exadecimal

SSL_CIPHER: Nombre de especificación de la cifra

SSL_CIPHER_EXPORT: Indica si la cifra es exportada

SSL_CIPHER_USEKEYSIZE: Número de bits de la cifra

SSL_VERSION_INTERFACE: La versión de programa de mod_ssl

SSL_VERSION_LIBRARY: La versión de programa de OpenSSL

SSL_CLIENT_M_VERSION: La versión del certificado del cliente

SSL_CLIENT_M_SERIAL: El número de serie del certificado del cliente

SSL_CLIENT_S_DN: Asunto DN en el certificado del cliente

SSL_CLIENT_S_DN_x509: Componente del asunto DN del cliente

SSL_CLIENT_I_DN: Emisor DN del certificado del cliente

SSL_CLIENT_I_DN_x509: Componente del emisor DN del cliente

SSL_CLIENT_V_START: Validez del certificado del cliente (fecha de inicio)

SSL_CLIENT_V_END: Validez del certificado del cliente (fecha de caducidad)

SSL_CLIENT_A_SIG: Algoritmo usado por la firma del certificado del cliente

SSL_CLIENT_A_KEY: Algoritmo usado por la clave pública del certificado del cliente

SSL_CLIENT_CERT: Codificación PEM del certificado del cliente

SSL_CLIENT_CERT_CHAIN: Codificación PEM en la cadena de certificado del cliente

SSL_CLIENT_VERIFY: NONE, SUCCESS, GENEROUS o FAILED

SSL_SERVER_M_VERSION: Versión del certificado del servidor

SSL_SERVER_M_SERIAL: Número de serie del certificado del servidor

SSL_SERVER_S_DN: Asunto DN en el certificado del servidor

SSL_SERVER_S_DN_x509: Componente del asunto DN del servidor

SSL_SERVER_I_DN: Emisor DN del certificado del servidor

SSL_SERVER_I_DN_x509: Componente del emisor DN del servidor

SSL_SERVER_V_START: Validez del certificado del servidor (fecha de inicio)

SSL_SERVER_V_END: Validez del certificado del servidor (fecha de caducidad)

SSL_SERVER_A_SIG: Algoritmo usado por la firma del certificado del servidor

SSL_SERVER_A_KEY: Algoritmo usado por la clave pública del certificado del servidor

SSL_SERVER_CERT: Codificación PEM del certificado del servidor

(donde x509 es un componente de un X.509 DN: C, ST, L, O, OU, CN, T, I, G, S, D, UID, Email)

Directivas de configuración

Las directivas más importantes para configurar el soporte de SSL/TLS en Apache 2.0 son las siguientes:

SSLEngine

Esta directiva activa el uso de los protocolos SSL/TLS. Esto se usa normalmente dentro de secciones <VirtualHost> para permitir SSL/TLS a un host virtual en particular. Por defecto el soporte para SSL/TLS está desactivado tanto para el servidor principal como para los servidores virtuales. Ejemplo:

<VirtualHost _default_:443>
SSLEngine on

</VirtualHost>

SSLCACertificateFile

Esta directiva establece la configuración donde se pueden agrupar los certificados de las Autoridades de Certificación (CA). Esta configuración es simplemente la concatenación de varios archivos de certificado en orden de preferencia. Estos se usan para la autentificación del cliente. Ejemplo:

SSLCACertificateFile /usr/local/apache2/conf/ssl.crt/ca-bundle-client.crt

SSLCACertificatePath

Esta directiva establece el directorio donde se obtienen los certificados de las Autoridades de Certificación (CA). Estos son usados para verificar el certificado cliente en la autentificación de cliente. Ejemplo:

SSLCACertificatePath /usr/local/apache2/conf/ssl.crt/

SSLCertificateFile

Esta directiva apunta al archivo del certificado para el servidor, y opcionalmente al archivo correspondiente de clave privada RSA o DSA (contenida en el mismo archivo). Ejemplo:

SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt

SSLCertificateKeyFile

Esta directiva señala al archivo de clave privada para el servidor. Si la clave privada no está combinada con el certificado en la directiva SSLCertificateFile, se usa esta directiva adicional para indicar el archivo con la clave privada individual. Ejemplo:

SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key

SSLProtocol

Esta directiva puede ser usada para controlar la versión del protocolo SSL. De esta forma los clientes sólo pueden conectarse con los protocolos dados. Los argumentos de la directiva pueden ser: SSLv2, SSLv3, TLSv1 y All. Por ejemplo, para activar SSLv3 y TLSv1, pero no SSLv2:

SSLProtocol all -SSLv2

« Apache 2 | Conexiones seguras en Apache 2

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License