Configurar SSL en Apache HTTPD

Conceptos

SSL / TLS (Secure Socket Layer / Transport Layer Security): son protocolos criptográficos que permiten establecer un canal de comunicación segura en Internet: web, correo, fax y mensajería instantánea

CA (Certificate Authoritative): entidad reconocida a nivel mundial encargada de generar certificados de seguridad para terceros.

CSR (Certificate Signing Request ): es una solicitud de firmado de certificado a una CA.

Procedimiento para obtener certificados de seguridad

  • 1. Crear claves públicas y privadas
  • 2. Crear CSR. El CSR debe tener la siguiente información

    • – Código del país (2 letras)
    • – Estado o provincia
    • – Ciudad
    • – Empresa o nombre de la organización
    • – Departamento
    • – Dominio o IP
    • – Correo electrónico
  • 3. Contactar con una CA
  • 4. Enviar el CSR a CA
  • 5. CA devuelve el certificado firmado
  • 6. Configurar el certificado sobre el servicio deseado

Los paso 3 y 4 pueden omitirse y obtenerse un certificado autofirmado, sin costo alguno, pero obtener un certificado firmado por una CA tiene las siguientes ventajas:

  • – Fuerte nivel de encriptación
  • – La autencidad del certificado es respaldada por una entidad reconocida a nivel mundial
  • – La raíz de los certificados son incluídos en la mayoría de los navegadores
  • – El proceso de conexión segura es transparente al usuario

Algunas CA

VeriSign: Es una de las CA lideres a nivel mundial, genera certificados con / hasta 256 bit de encriptación.

Thawte: Otras de las CA lideres en el mundo, tambien ofrece diferentes tipos de certificados con un nivel de encriptación de hasta 256 bit

Generar certificado autofirmado

Generar llave privada
# openssl genrsa -out ca.key 1024
Generar petición de certificado
# openssl req -new -key ca.key -out ca.csr

A continuación debemos especificar los datos que nos solicita openssl, se debe prestar especial atención al dato Common Name pues debe coincidir con el dominio o IP a través del cual haremos peticiones seguras si no coincide el certificado no funcionará

Generar certificado
# openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt
Mover ficheros a los directorios correspondientes
# mv -v ca.crt /etc/pki/tls/certs
# mv -v ca.key /etc/pki/tls/private/
# mv -v ca.csr /etc/pki/tls/private/

Actualizar configuración del Apache

Editar httpd.conf
# vim +/NameVirtualHost  /etc/httpd/conf/httpd.conf
Añadir al httpd.conf
NameVirtualHost *:443
Editar ssl.conf
# vim  /etc/httpd/conf/ssl.conf
Actualizar las siguientes directivas
<VirtualHost *:443>
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc.pki/tls/private/ca.key
Reiniciar el Apache
# service httpd graceful

Lecturas recomendadas

Transport Layer Security

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.