Solicitudes de firma de certificado (CSR) son fundamentales para la seguridad y el cifrado web. Son parte integral del proceso de obtención de una Capa de sockets seguros (SSL) o Seguridad de la capa de transporte (TLS) certificado de un Autoridad de certificación (CA)Este blog le guiará en la comprensión y generación de un CSR, destacando su importancia para mantener la seguridad web.
¿Qué es una RSE?
Se envía un bloque de texto cifrado conocido como Solicitud de firma de certificado cuando se solicita un certificado SSL de un Autoridad certificadaGeneralmente se genera en el servidor donde se instalará el certificado. Contiene información del certificado, como el nombre de la organización, el nombre común (nombre de dominio), la ubicación y el país. Además, incluye la clave pública que se utilizará para firmarlo.
¿Por qué son importantes las RSE?
Los CSR actúan como conducto entre la entidad solicitando la Certificado SSL y la CA que lo emite. Al generar una CSR, se crean dos elementos esenciales. El primero es el Llave pública, que se incluye en la CSR. La segunda es la clave privada, generada simultáneamente con la CSR y que permanece en su servidor. La clave privada debe mantenerse en secreto, ya que permite al servidor autenticar y decodificar la información una vez que el certificado SSL esté operativo.
Descripción general de Luna Cloud HSM de Thales: características y beneficios
Luna Cloud HSM es un Módulo de seguridad de hardware (HSM) Proporcionado por Thales. La parte "Cloud HSM" indica que se trata de una oferta basada en la nube. Puede acceder a ella como servicio a través de internet en lugar de tener que instalar y administrar físicamente un HSM en su centro de datos. Luna Cloud HSM forma parte del servicio CipherTrust Cloud Key Manager, proporcionado por Thales.
Un HSM es un dispositivo de hardware dedicado con procesadores criptográficos especializados, diseñado para gestionar claves digitales y realizar operaciones criptográficas. Proporciona un entorno seguro donde se pueden generar, gestionar y utilizar claves de cifrado, manteniéndolas aisladas de otros componentes del sistema para mejorar la seguridad. Los HSM se utilizan habitualmente para proteger los activos digitales más sensibles de una organización.
El HSM Luna Cloud incorpora lo mejor de la nube al mundo de los HSM: escalabilidad, accesibilidad y menores costos iniciales. Disfruta de la seguridad de un HSM tradicional con las ventajas adicionales de un servicio en la nube.
Las principales características de Luna Cloud HSM son:
-
Seguridad robusta
Luna Cloud HSM aprovecha el fuerte cifrado de Thales y gestión de claves Capacidades que ofrecen uno de los niveles más altos de protección de datos en la nube. Los HSM son resistentes a manipulaciones y proporcionan un entorno seguro para operaciones criptográficas.
-
Escalabilidad organizacional
A medida que sus necesidades criptográficas aumentan, Luna Cloud HSM puede escalar fácilmente con ellas. No tiene que preocuparse por comprar e instalar hardware HSM adicional.
-
Alta disponibilidad
Luna Cloud HSM ofrece alta disponibilidad y conmutación por error automática para garantizar la continuidad del negocio. Puede implementar HSM en varias regiones para mitigar interrupciones locales.
-
Cumplimiento
Luna Cloud HSM le ayuda a cumplir con los estándares regulatorios relacionados con las operaciones criptográficas y la administración de claves, incluidos PCI-DSS, GDPR, y HIPAAEl servicio viene con capacidades integrales de auditoría y registro.
-
Interoperabilidad
Luna Cloud HSM admite una amplia gama de API criptográficas, bibliotecas e integraciones, como PKCS#11, Java (JCE), Microsoft CryptoAPI y Microsoft CNG, lo que lo hace compatible con una amplia gama de aplicaciones y servicios.
Además, consulte la lista de plataformas de cliente compatibles con Luna Cloud HSM aquí.
¿Cómo generar un CSR?
La generación de un CSR puede variar según el software que utilice, pero los pasos principales son los mismos. A continuación, se presenta un esquema general del proceso:
-
Preparación
Debe tener toda la información relevante antes de generar su CSR. Esto incluye el nombre de su dominio, el nombre de su organización, la localidad (ciudad), el nombre de su estado o provincia y el código de país.
-
Generar un par de claves
El primer paso para generar una CSR es crear un par de claves pública-privada. Recuerde que su clave privada debe permanecer segura dentro del servidor o módulo de hardware que genera.
-
Generar la RSE
Utilice una herramienta de generación de CSR compatible con el software de su servidor. Esta herramienta le solicitará los datos preparados en el paso 1 y la clave privada generada en el paso 2. A continuación, generará un archivo codificado con la extensión .csr o .req.
Durante el proceso de generación de CSR, se le pedirá que ingrese sus datos (nombre común, organización, localidad, etc.).
Generando CSR desde Luna HSM
Generaremos CSR en Thales DPoD. Primero, debemos configurar el propietario de la aplicación, lo que implica agregar y configurar un cliente.
La instalación del cliente utiliza un archivo .zip (Windows) o .tar (Linux) para entregar los materiales del cliente necesarios para configurar la conexión de su sistema al Servicio HSM Luna CloudEl archivo .zip del cliente incluye un archivo crystoki-template.ini preconfigurado y un archivo de almacenamiento de cliente que contiene una biblioteca y archivos binarios.
Instalación del cliente de servicio
-
Acceda a la página de Servicio y haga clic en el servicio o en el nombre de la partición que desea generar un cliente.

-
Haga clic en Nuevo cliente de servicio – Se muestra la ventana Crear cliente de servicio.

-
En la ventana Crear cliente de servicio, ingrese un nombre de cliente (por ejemplo, Pega-Macro) y seleccione Crear cliente de servicio.

Configuración del cliente de servicio instalado
- Un nuevo cliente (en este caso, configuración-PKI-Luna.zip) se genera y se proporciona para descargar e instalar en su máquina cliente.
- El cliente es un archivo zip que contiene la información del sistema necesaria para conectar su equipo a una partición HSM. Consulte la sección "Contenido del cliente" para obtener más información.
- Transfiera el cliente a su equipo. Puede transferirlo mediante SCP, PSCP, WinSCP, FTPS u otras herramientas de seguridad.
- Usando la GUI de Windows o una herramienta de descompresión, descomprima el archivo – configuración-PKI-Luna.zip.
- Descomprima el cvclient-min.zip.
- Extraiga el archivo cvclient-min.zip en el directorio creado en el paso anterior. Esta ubicación es necesaria para el comando setenv del paso 7. No lo extraiga a un nuevo directorio cvclient-min.zip.
-
Establezca la variable de entorno. Abra el Símbolo del sistema de administrador: haga clic con el botón derecho en el Símbolo del sistema y seleccione Ejecutar como administrador. Ejecute lo siguiente en el Símbolo del sistema de administrador:

Configuración del proveedor de almacenamiento de claves SafeNet (KSP)
-
El sistema requiere acceso al proveedor de almacenamiento de claves de SafeNet (KSP). Copie el archivo SafeNetKSP.dll del cliente de servicio Luna Cloud HSM que descargó. C:\\Windows\System32.
Nota: Si no se copia el archivo SafeNetKSP.dll, no se podrá acceder a los proveedores de almacenamiento de claves de SafeNet durante la integración. Por ejemplo, si se configuran los Servicios de certificados de Microsoft Active Directory, los proveedores de almacenamiento de claves de SafeNet no estarán disponibles al configurar la criptografía para la CA.
- Ejecute KspConfig.exe
- Navegue hasta el directorio de instalación de KSP.
- Haga doble clic en Registrarse o ver la biblioteca de seguridad.
-
Haga clic en Explorar. Seleccione la pestaña cryptoki.dll archivo del cliente de servicio Luna Cloud HSM.
Haga clic en Registro.

-
Tras el registro exitoso, un Éxito! Se muestra el mensaje. Haga clic DE ACUERDO.

- Haga doble clic en Registrar ranuras HSM.
-
Registre el HSM para el usuario administrador. Para ello, abra el Registrarse como usuario menú desplegable y seleccione Administrador; abra el Dominio Menú desplegable y seleccione su dominio. Abra el Ranuras disponibles Menú desplegable, seleccione la etiqueta del servicio, Ingrese el Contraseña de ranuray haga clic Ranura de registro.

-
Tras el registro exitoso, un Éxito! Se muestra el mensaje. Haga clic OK.

-
Registre el HSM para el usuario del sistema. Abra el menú desplegable "Registrar para usuario" y seleccione "SISTEMA", el menú desplegable "Dominio" y "NT AUTHORITY". Abra el menú desplegable "Ranuras disponibles", seleccione la etiqueta de servicio, introduzca la contraseña de la ranura y haga clic en "Registrar ranura".

-
Tras el registro, aparecerá el mensaje "¡Éxito!". Haga clic en Aceptar.

Generando el CSR en el Cliente de Servicio
-
Crea un archivo llamado solicitud.inf y rellénelo con los siguientes detalles para generar una solicitud de un certificado SSL conectado a un RSA Clave. El contenido es:
[Version]
Signature = "$Windows NT$"
[NewRequest]
Subject = "C=US, S=Dallas, L=Texas, O=Encryption Consulting LLC, OU=Dev, [email protected], CN=ECIssued"
HashAlgorithm = SHA256
KeyAlgorithm = RSA
KeyLength =2048
ProviderName = "Safenet Key Storage Provider"
KeyUsage = 0xf0
MachineKeySet =True
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.
Nota: El nombre común del sujeto (CN) se elige arbitrariamente para esta solicitud y está sujeto a cambios.
Los parámetros son:
-
Firma
“$Windows NT$” especifica que el archivo INF está destinado a usarse con Windows NT y versiones posteriores de Windows.
-
Asunto
- C - Define el nombre de país de dos letras para el nombre distinguido del sujeto (DN) de la solicitud de certificado. Este parámetro debe estar presente en el DN del sujeto.
- S - Define el nombre de estado para el nombre distinguido del sujeto (DN) de la solicitud de certificado. Este parámetro debe estar presente en el DN del sujeto.
- L - Define la localidad (normalmente la ciudad) del nombre distinguido del sujeto de la solicitud de certificado. Este parámetro puede estar presente en el DN del sujeto.
- O - Define el nombre de la organización para el nombre distinguido del sujeto (DN) de la solicitud de certificado. Este parámetro debe estar presente en el DN del sujeto.
- OU – Define el nombre de la unidad organizativa para el nombre distinguido del sujeto (DN) de la solicitud de certificado. Este parámetro puede estar presente en el DN del sujeto.
- y - es la dirección de correo electrónico oficial o de contacto de la autoridad certificadora.
- CN- Define el nombre común del nombre distinguido del sujeto (DN) de la solicitud de certificado. Este parámetro debe estar presente en el DN del sujeto.
-
Algoritmo hash
SHA256 establece el algoritmo hash en SHA256, una opción estándar y segura.
-
Algoritmo clave
RSA establece el algoritmo de clave en RSA, un algoritmo de clave pública ampliamente utilizado.
-
Longitud de clave
2048 establece la longitud de la clave en 2048 bits. Este es el estándar actual de la industria para claves RSA.
-
Nombre del proveedor
Proveedor de almacenamiento de claves SafeNet Indica el Proveedor de Servicios Criptográficos (CSP) que se utilizará. El CSP es una biblioteca de software que implementa funciones criptográficas. En este caso, se utiliza el Proveedor de Almacenamiento de Claves SafeNet.
-
Uso de clave
0xf0 especifica el propósito de la clave en el certificado. El valor 0xf0 en hexadecimal corresponde al valor binario 11110000, que representa los usos de las claves de Firma Digital (0x80), Cifrado de Clave (0x20), Cifrado de Datos (0x10) y Acuerdo de Clave (0x08).
-
Conjunto de claves de máquina
Verdadero indica que la clave privada se almacena en el almacén de certificados de la computadora local, no en el del usuario actual.
-
Extensión de uso de clave mejorada
OID=1.3.6.1.5.5.7.3.1 es un Identificador de Objeto (OID) que especifica el uso del certificado. El OID 1.3.6.1.5.5.7.3.1 representa "Autenticación de Servidor", lo que significa que el certificado está diseñado para autenticar servidores en comunicaciones SSL/TLS.
-
- Abra una nueva ventana del símbolo del sistema como administrador. Puede hacerlo buscando "cmd" en el menú Inicio, haciendo clic derecho en el Símbolo del sistema y seleccionando "Ejecutar como administrador".
- Navegue hasta la ruta donde se encuentra request.inf y presione Enter.
-
Ahora, genere la solicitud de certificado con el siguiente comando:
certreq -new request.inf request.req
Este comando creará un nuevo archivo de Solicitud de Firma de Certificado (CSR) llamado `request.req`, basado en la configuración de su archivo `request.inf`. Puede enviar este archivo CSR a una Autoridad de Certificación (CA) para su certificado SSL.
Firmar el CSR utilizando Microsoft CA
Hay dos formas diferentes de firmar un CSR:
Aceptando solicitud de certificado
-
Transfiera el archivo CSR a la CA emisora y ejecute el comando:
certreq -submit -attrib "CertificateTemplate:<Template Name>" "C:\MacroSign.csr"Aquí, Nombre de la plantilla = “EncryptionConsuCodeSigning”

-
Después de seleccionar el Autoridad certificada Desde la lista de autoridades de certificación, guarde el certificado con un nombre apropiado (p. ej., ECMacro, la extensión debe ser .crt o .cer).

-
Tras la ejecución exitosa, encontrará el Certificado dentro de Certificados Emitidos en autoridad de certificación

-
Comprueba si “Firma de código” está dentro del atributo Uso mejorado de claves del certificado recién generado.

Inscripción vía web
-
Las plantillas disponibles en la Autoridad de Certificación

-
Ahora, realice la inscripción web después de seleccionar una plantilla: “Firma de código”. (en nuestro caso, https://ca02.encon.com/certsrv/)

-
Después de seleccionar Solicite un certificadoAparecerá esta pantalla. Seleccione Solicitud de certificado avanzada. (En nuestro caso – https://ca02.encon.com/certsrv/certrqus.asp)

-
Pegue el contenido del CSR dentro Solicitud guardada y seleccione Firma de código en el Plantilla de certificado. Después de eso, haga clic en Enviar Formulario.

-
Esto le solicitará dos opciones: Descarga el certificado en formato PDF y Descargar cadena de certificadosElija la última opción y descargue la cadena a su sistema local.

-
Esto es lo que Cadena de certificados se vera como.

Agregar la clave privada al certificado
-
Aceptar e instalar el certificado para estar disponible dentro del entorno Windows.

-
A continuación, agregue el certificado a la sección “Certificados Personales” de Certificados – Equipo local usando el comando –
certutil -store MY “<thumbprint of the certificate>”
Localización de averías
-
Para consultar la lista de plantillas de CA presentes dentro de la CA emisora:
certutil -CATemplates
-
Si la clave privada no está adjunta al certificado, pruebe este comando “repairstore”

-
Registro CSP/KSP está fallando en Windows.
Los registros de CSP/KSP pueden fallar si falta Windows Update, ya que incluye un paso que verifica que las DLL estén firmadas por el certificado de Thales que se vincula a la raíz de confianza G4 de DigiCert (en cumplimiento con los estándares de seguridad de la industria).
Este paso solo se puede realizar correctamente si su sistema operativo Windows cuenta con el certificado necesario. Si su sistema operativo Windows está actualizado, ya debería tener dicho certificado.
Si su host de cliente Luna HSM está conectado a Internet, utilice los siguientes comandos para actualizar el certificado manualmente:
certutil -urlcache -f http://cacerts.digicert.com/DigiCertTrustedRootG4.crt DigiCertTrustedRootG4.crt
certutil -addstore -f root DigiCertTrustedRootG4.crtPara actualizar manualmente un host no conectado
- Descargue DigiCert Trusted Root G4 (http://cacerts.digicert.com/DigiCertTrustedRootG4.crt DigiCertTrustedRootG4.crt) a una computadora separada conectada a Internet.
- Transporte el certificado, utilizando sus medios aprobados, al host del cliente Luna en un ubicación de su elección
-
Agregue el certificado al almacén de certificados mediante el comando:
certutil -addstore -f root <downloaded cert path>
-
Si Asunto Si la solicitud del certificado no se muestra en el certificado, intente los siguientes pasos.
- Abra la Consola de plantillas de certificado: en el servidor AD CS, abra la Consola de plantillas de certificado ejecutando `certtmpl.msc` desde el cuadro de diálogo Ejecutar (Win + R).
- Duplicar una plantilla existente: Generalmente, es mejor duplicar una plantilla existente que modificarla. Busca una plantilla similar a la que buscas, haz clic derecho sobre ella y selecciona "Duplicar plantilla".
-
Configurar la plantilla: En el cuadro de diálogo de propiedades de la nueva plantilla, puede configurar varios ajustes. Para configurar los campos Uso de clave y Uso mejorado de clave:
Uso de la clave: Vaya a la pestaña "Extensiones", seleccione "Uso de clave" en la lista y haga clic en "Editar". Aquí puede seleccionar los usos de clave que desea incluir, como "Firma digital", "Cifrado de clave", etc.
Uso mejorado de la clave: Aún en la pestaña "Extensiones", seleccione "Políticas de aplicación" y haga clic en "Editar". Aquí puede agregar los usos de clave mejorados que desea incluir, como "Firma de código", "Autenticación de servidor", etc.
- Guardar la plantilla: Una vez que hayas configurado la plantilla a tu gusto, asígnale un nombre y guárdala.
- Emitir la plantilla: La nueva plantilla ya está disponible, pero debe emitirse antes de poder usarse. En la consola de la entidad de certificación (`certsrv.msc`), haga clic con el botón derecho en `Plantillas de certificado`, seleccione `Nuevo`, luego `Plantilla de certificado para emitir` y seleccione la nueva plantilla.
Para solicitar un certificado mediante esta plantilla, debe incluir los campos Uso de clave y Uso de clave mejorado tal como los ha configurado.
Conclusión
Una vez generado, el CSR puede utilizarse para solicitar un certificado SSL a una autoridad de certificación. La CA utilizará los datos del CSR para generar el certificado, garantizando así la seguridad de su sitio web y la transmisión segura de información.
Aunque los procedimientos y protocolos puedan parecer complejos, usar un certificado SSL para proteger su sitio web es esencial para ganarse la confianza de los visitantes y proteger la información crítica. Un CSR es esencial para garantizar que se incluyan los datos correctos en su certificado SSL.
