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

Los tutoriales aquí en LibreByte están disponible bajo una licencia de software libre. Si le gusta mi trabajo considere:
Comprar un Hosting/VPS o Servidor Dedicado en MCKHost

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

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