Creación de Certificados SSL y CSR: Una Guía Detallada para Profesionales de TI

La seguridad en las comunicaciones digitales es un pilar fundamental en el entorno tecnológico actual. Para profesionales de TI, comprender y gestionar la implementación de certificados SSL (Secure Sockets Layer) es una tarea esencial. Estos certificados no solo garantizan el acceso seguro a servidores como Tableau Server, sino que también protegen la integridad de los datos transmitidos entre aplicaciones, como Tableau Server y Tableau Desktop. Este artículo se adentra en el proceso de generación de una Solicitud de Firma de Certificado (CSR) y la posterior obtención de un certificado SSL, proporcionando una visión general para profesionales con experiencia en los requisitos y configuración de SSL. Es importante destacar que el procedimiento aquí descrito es un ejemplo y existen múltiples métodos para lograr este fin.

Diagrama del proceso de solicitud de certificado SSL

Entendiendo la Solicitud de Firma de Certificado (CSR)

Una Solicitud de Firma de Certificado (CSR) es un bloque de texto codificado que una organización o individuo envía a una Autoridad de Certificación (CA) al solicitar un certificado SSL. Este archivo contiene información crucial que la CA utiliza para crear el certificado. Entre los datos esenciales que incluye una CSR se encuentran la clave pública del solicitante, detalles sobre la organización o el individuo, y el nombre de dominio completo (FQDN) que se desea proteger. La CSR es, en esencia, el primer paso formal para solicitar un certificado SSL/TLS, y es un componente crítico de la infraestructura de clave pública (PKI).

¿Por qué es importante una CSR?

La importancia de una CSR radica en varios aspectos clave:

  1. Solicitud de un Certificado SSL: Es el documento indispensable que se presenta a la Autoridad de Certificación para solicitar un certificado. La CA utiliza la información de la CSR para emitir un certificado que coincida con el dominio, la organización y el servidor.
  2. Seguridad: La CSR contiene la clave pública, que es fundamental para el proceso de cifrado de datos entre el servidor y el cliente (el navegador). La clave privada, generada junto con la clave pública, se mantiene de forma segura en el servidor y nunca se comparte. Juntas, permiten establecer comunicaciones seguras utilizando SSL/TLS.
  3. Validación: La CA utiliza la información proporcionada en la CSR para verificar la identidad del solicitante del certificado. Dependiendo del tipo de certificado SSL solicitado (validación de dominio, validación de organización o validación ampliada), la CA puede llevar a cabo diferentes niveles de comprobaciones antes de emitir el certificado.

Componentes Clave de una CSR

Una CSR típica incluye la siguiente información:

  • Clave pública: Se utiliza en el proceso de cifrado y descifrado de datos.
  • Nombre común (CN): El nombre de dominio completo (FQDN) que se desea proteger (por ejemplo, www.example.com o tableau.example.com). Es vital que este nombre coincida exactamente con la dirección utilizada para acceder al servidor, de lo contrario, se producirán errores de seguridad. Para certificados wildcard, el nombre común debe comenzar con un asterisco (por ejemplo, *.digicert.com).
  • Nombre de la organización (O): El nombre legal completo de la empresa o individuo que solicita el certificado.
  • Unidad organizativa (OU): El departamento o división dentro de la empresa que gestiona el certificado (opcional).
  • Localidad (L): La ciudad donde está ubicada la organización.
  • Estado/Provincia (ST): El estado o provincia donde está ubicada la organización.
  • País (C): El código de país de dos letras (por ejemplo, US para Estados Unidos, ES para España).

Es fundamental comprender que la CSR no contiene la clave privada del sitio web; esta se genera y se mantiene de forma segura en el servidor.

Generación de Claves y CSR con OpenSSL

Tableau Server, al utilizar Apache, se beneficia de la robustez de OpenSSL, un kit de herramientas de línea de comandos de código abierto muy útil para trabajar con certificados X.509, CSR y claves criptográficas.

Requisitos de Versión y Seguridad:

  • Tableau Server 2022.1.17, 2022.3.9, 2023.1.5 y versiones posteriores hasta la 2025.1.x ejecutan OpenSSL 3.1.
  • A partir de la versión 2025.3, Tableau utilizará OpenSSL 3.4.0 con seguridad de nivel 2, que requiere claves de 2048 bits o más. Las claves de seguridad de nivel 1 existentes dejarán de funcionar, haciendo necesaria la generación e implementación de un nuevo par de claves. Si se han estado generando claves de al menos 2048 bits, no se requerirá acción adicional.

Pasos para Generar una Clave y una CSR

Para configurar Tableau Server para utilizar SSL, se requiere un certificado SSL, y el proceso comienza con la generación de una clave privada y una CSR.

1. Establecer la Variable de Entorno de Configuración de OpenSSL (Opcional)

Para evitar tener que especificar la ruta del archivo de configuración de OpenSSL en cada comando, se puede establecer la variable de entorno OPENSSL_CONF. Esto asegura que OpenSSL utilice el archivo de configuración correcto, especialmente si se realizan cambios para funcionalidades como los certificados SAN.

Abra la línea de comandos como administrador y ejecute:

set OPENSSL_CONF=c:\Program Files\Tableau\Tableau Server\packages\apache.<version_code>\conf\openssl.cnf

Nota: No incluya la ruta del archivo entre comillas.

2. Generar un Archivo de Clave Privada

Este archivo de clave será utilizado posteriormente para generar la CSR.

Abra la línea de comandos como administrador y navegue hasta el directorio de Apache de Tableau Server. Ejecute el siguiente comando para crear el archivo de clave:

openssl.exe genrsa -out <yourcertname>.key 4096
  • Notas:
    • Este comando utiliza una longitud de 4096 bits para la clave. Se recomienda una longitud mínima de 2048 bits para una comunicación segura. Si no se especifica, se usará un valor predeterminado de 512 bits, que es menos seguro.
    • Para versiones de Tableau Server específicas (2021.3.26, 2021.4.21, 2022.1.17, 2022.3.9, 2023.1.5 y posteriores) basadas en OpenSSL 3.1, para crear claves RSA PKCS#1, se debe usar la opción adicional -traditional:bashopenssl.exe genrsa -traditional -out <yourcertname>.key 4096

3. Crear una Solicitud de Firma de Certificado (CSR)

Una vez generada la clave privada, se procede a crear la CSR.

Ejecute el siguiente comando:

openssl.exe req -new -key yourcertname.key -out yourcertname.csr
  • Manejo de Errores y Advertencias:

    • Si la variable de entorno OPENSSL_CONF no está establecida, podría ver un mensaje de error relacionado con la información de configuración no cargada. En este caso, puede añadir el parámetro -config ..\conf\openssl.cnf al comando.
    • Puede aparecer una advertencia sobre la no existencia del directorio /usr/local/ssl. Este mensaje es típico en Windows y puede ser ignorado, ya que el archivo se creará correctamente.
  • Introducción de Información:Se le solicitará que ingrese la información necesaria para la CSR:

    • Nombre del País (2 letras): Por ejemplo, ES.
    • Nombre del Estado o Provincia: El nombre completo.
    • Nombre de la Localidad: La ciudad.
    • Nombre de la Organización: El nombre legal completo de su empresa.
    • Nombre de la Unidad Organizativa: El departamento (opcional).
    • Nombre Común: La dirección URL que se utilizará para acceder a Tableau Server (por ejemplo, tableau.example.com). Este es un campo crucial.
    • Dirección de correo electrónico: Su dirección de contacto (opcional).

Ejemplo de campos a rellenar para una CSR

4. Enviar la CSR a una Autoridad Emisora de Certificados (CA)

Una vez generada la CSR (el archivo .csr), debe enviarla a una Autoridad de Certificación (CA) comercial para solicitar la obtención del certificado SSL firmado. Existen diversas CA reconocidas como Let's Encrypt, DigiCert o Comodo.

Configuración de Certificados para Múltiples Dominios (Certificados SAN)

Tableau Server soporta el uso de SSL para múltiples dominios mediante certificados SAN (Subject Alternative Name). Para configurar esto, es necesario modificar el archivo de configuración de OpenSSL (openssl.cnf) antes de generar la CSR.

Modificar el Archivo de Configuración de OpenSSL (openssl.cnf) para Certificados SAN

  1. Navegue hasta la carpeta conf de Apache dentro de la instalación de Tableau Server (ejemplo: C:\Program Files\Tableau\Tableau Server\packages\apache.<version_code>\conf).

  2. Abra el archivo openssl.cnf en un editor de texto.

  3. Busque la línea req_extensions = v3_req. Si esta línea está comentada (comienza con #), elimine el carácter # y los espacios iniciales.

  4. Vaya a la sección [ v3_req ] del archivo. Aquí es donde se definirán las extensiones de nombre alternativo del firmante. Deberá añadir una línea que especifique los dominios adicionales. La sintaxis exacta puede variar ligeramente dependiendo de la versión de OpenSSL y la configuración deseada, pero típicamente implicará añadir una entrada subjectAltName que liste todos los nombres de dominio. Por ejemplo:

    [ v3_req ]# Extensions to add to a certificate requestkeyUsage = critical, digitalSignature, keyEnciphermentsubjectAltName = @alt_names[alt_names]DNS.1 = tableau.example.comDNS.2 = www.tableau.example.comDNS.3 = reporting.example.com
  5. Después de guardar los cambios en openssl.cnf, puede proceder con los pasos de generación de clave y CSR como se describió anteriormente. La CSR generada incluirá ahora los nombres alternativos especificados.

Cómo generar certificados auto firmados con OpenSSL

Utilización de la Clave y el Certificado para Configurar Tableau Server

Una vez que haya obtenido el certificado SSL firmado por la CA y tenga su archivo de clave privada, el siguiente paso es configurar Tableau Server para utilizar SSL. Esto se realiza siguiendo los pasos descritos en la documentación de Tableau para "Configurar SSL externa".

Formatos de Certificado y Conversión

Los certificados SSL y las claves privadas pueden presentarse en varios formatos, cada uno adecuado para diferentes plataformas y dispositivos. Comprender estos formatos es esencial para una correcta implementación.

  • Formato PEM: Uno de los formatos más comunes y populares. Los archivos PEM suelen tener extensiones como .pem, .crt, .cer, y .key. Son archivos ASCII codificados en Base64 y contienen líneas de inicio y fin (-----BEGIN CERTIFICATE----- y -----END CERTIFICATE-----). El formato PEM puede almacenar certificados de servidor, certificados intermedios y claves privadas. Es utilizado por servidores como Apache.
  • Formato DER: Es la forma binaria de un certificado. Los archivos en este formato pueden tener extensiones .der o .cer. Cualquier tipo de certificado y clave privada puede representarse en formato DER. Se usa comúnmente con plataformas Java.
  • Formato PKCS #7 o P7B: Un archivo ASCII en Base64 con extensiones .p7b o .p7c. Los archivos P7B contienen certificados y cadenas de certificados, pero no incluyen la clave privada. Son útiles para distribuir certificados públicos.
  • PKCS #12 o PFX: Un formato binario que almacena certificados intermedios, certificados de servidor y la clave privada en un solo archivo. Las extensiones de archivo PFX son .pfx y .p12. Este formato es ampliamente utilizado en entornos Windows para importar y exportar claves privadas y certificados.

Herramientas como "SSL Converter" pueden ayudar a convertir certificados entre estos diferentes formatos, seleccionando el archivo del certificado y su tipo para la conversión deseada.

Desafíos Comunes y Consejos

La generación y gestión de CSR y certificados SSL pueden presentar algunos desafíos:

  • Información Inexacta: Es crucial prestar la máxima atención a los detalles al introducir la información para la CSR, especialmente el Nombre Común (FQDN) y el nombre legal de la organización. Un error puede invalidar la CSR o el certificado emitido. Utilizar herramientas de decodificación de CSR puede ayudar a verificar la exactitud de la información.
  • Certificados Multidominio: La configuración de certificados SAN requiere una modificación cuidadosa del archivo de configuración de OpenSSL. Asegurarse de que todos los dominios necesarios estén incluidos es fundamental.
  • Seguridad de la Clave Privada: La clave privada generada es un activo crítico. Debe ser almacenada de forma segura y nunca compartida. Si se pierde o se ve comprometida, será necesario generar una nueva clave y solicitar un nuevo certificado.
  • Compatibilidad de Formatos: Asegurarse de que el formato del certificado y la clave privada sea compatible con el servidor o la plataforma donde se van a instalar es esencial.

Conclusión

La solicitud de firma de certificado (CSR) es un paso fundamental para asegurar las comunicaciones en línea mediante certificados SSL/TLS. Comprender su estructura, requisitos y el proceso de generación utilizando herramientas como OpenSSL es esencial para los profesionales de TI. Al seguir estos pasos y prestar atención a los detalles, se puede obtener e implementar de manera efectiva un certificado SSL, fortaleciendo la seguridad y la confianza en las interacciones digitales.

tags: #crear #certificado #ssl #crs