Procedimiento para renovación de certificados TLS en HCL Domino 11.x o anterior (con Kyrtool) firmado por un CA externo.
Operaciones y Servicios
Base de Conocimiento
Fecha de emisión:
Versión. Revisión
18/09/2023
Ver1.Rev1
Introducción
Anteriormente, los servidores de Domino utilizaban la base de datos Domino Server Certificate Admin para administrar los keyring y los certificados de servidor. Sin embargo, esta base de datos no permite importar certificados SHA-2. Ahora se recomienda usar sólo certificados SHA-2 para SSL debido a problemas de seguridad. Por causa de esta limitación con la base de datos Server Certificate Admin, ahora se utilizan las herramientas OpenSSL y KYRtool para generar el archivo de claves con un certificado SHA-2 firmado por un CA de terceros.
Resumen Referencial
Clasificación
Procedimiento
Tipo
Solución
Dirigido a:
Personal Técnico
Tiempo de lectura estimada
25 minutos
Procedimiento
Se lleva a cabo la generación de un archivo de keyring en conjunto con un certificado de Autoridad de Certificación (CA) basado en SHA-2 proveniente de una entidad externa de confianza. Este proceso se realiza utilizando las herramientas OpenSSL y KYRTool en un entorno de estación de trabajo con sistema operativo Windows.
- Keyring hace referencia al archivo .kyr
- Stash hace referencia al archivo .sth
Para incluir un espacio en un parámetro, el parámetro debe estar delimitado entre comillas. Por ejemplo, si Notes se instaló en el directorio Program Files, la línea de comandos para crear un keyring podría tener el siguiente aspecto:
kyrtool ="c:\Program Files\IBM\Notes\notes.ini" create -k "c:\Program Files\IBM\Notes\data\keyring.kyr" -p password
1a. KYRTool
Notas:
- En caso de no estar disponible, la utilidad Kyrtool se encuentra adjunta en este artículo.
- A partir de Notes 12, ya están disponibles clientes de 64 bits.
-
Coloque el KYRTool de 32 bits en el directorio del programa Notes si tiene un cliente Notes de 32 bits; si su cliente es de 64 bits, coloque el KyrTool de 64 bits en el directorio de programa Notes.
- Si tiene el directorio del programa Notes/Domino en la variable de entorno PATH de su sistema, se puede instalar en cualquier directorio.
-
Si va a utilizar KYRTool en el servidor de Domino, coloque el KYRTool de 64 bits en el directorio del programa Domino si el servidor de Domino es de 64 bits. Utilice KYRTool de 32 bits si Domino es de 32 bits. Para conocer la versión de bits del servidor de Domino, emita el comando "show server" en la consola del servidor.
1b. OpenSSL
- La versión ligera de OpenSSL es suficiente para las tareas necesarias para crear un certificado SHA-2. v1.0.1j es la última versión recomendada a partir de diciembre de 2014. La versión de 32 bits o de 64 bits se puede usar si está en Windows 7.
-
Es posible que OpenSSL necesite actualizaciones en las bibliotecas de Windows Visual C++. Si las bibliotecas no están actualizadas, se mostrará un mensaje durante la instalación de OpenSSL que indica que se necesitan bibliotecas de Visual C++ actualizadas. Los enlaces para descargar estas bibliotecas también se encuentran en la página de descarga de OpenSSL.
- El instalador extraerá un archivo de configuración "openssl.cfg" en el directorio bin. Para que OpenSSL lea este archivo de configuración, debe establecer una variable de entorno ejecutando el siguiente comando desde un símbolo del sistema de DOS:
SET OPENSSL_CONF=\openssl.cfg
Ejemplo: SET OPENSSL_CONF=c:\OpenSSL-Win64\bin\openssl.cfg
Ejecute OpenSSL desde el archivo "openssl.exe", que se encuentra en el directorio \bin de la instalación de OpenSSL. En Windows, abra este directorio en una ventana del símbolo del sistema en modo de administrador para ejecutarlo. (Obtendrá un error si intenta ejecutarlo haciendo doble clic en el Explorador de archivos).
2. Generar un par de claves RSA usando OpenSSL
openssl genrsa -out server.key 4096
Generating RSA private key, 4096 bit long modulus
........................................................................................++
...................................................................++
e is 65537 (0x10001)
El par de claves resultante no debe estar protegido con contraseña. Esta no es una buena práctica de seguridad, por lo que solo realice estos pasos para los sistemas de producción en un sistema de acceso restringido que se considere seguro. El par de claves resultante debe tener el siguiente aspecto:
[C:\] type server.key
-----BEGIN RSA PRIVATE KEY-----
MIIJKAIBAAKCAgEAr9uZYZ1BrraxW1AdM1ecexiD2uaPxNKjS2p2p9pygUc/vU2d
rrqjj3tAybdkNEFcwQLY/eIZcEowHmhH0b9Ut5EOsMMxkB4vUHg6gWmse64wr2qx
5EmUfjZ/LDMDqnmFxTDvr2iiajZI/L/8thgwBEK2AEGhCppyvyo/mzvMua9j7I8G
[Many lines removed]
tuEe3JGUnHaWetQYOU6PmTKIgPpd3disflCJe8K1dzN8bEkQF2eZk/oODVHSHRyC
7Rw9zpLxTJmbd3iWW3+ZVHhpudYZrDE8NbaaiGMbfyfQBnSH1XbDHSveTxLOY3fo
+d9lePMThdnmme6b1v8X4sCuDKrFjoV5Veo4Qq8I+099hu3tTRq2zGpNPsg=
-----END RSA PRIVATE KEY-----
3. Generar una solicitud de firma de certificado (CSR) utilizando OpenSSL
NOTA: Si un archivo de configuración para OpenSSL no está definido por una variable de entorno, es posible que un usuario no pueda crear un csr con el comando "openssl req" y recibirá el siguiente mensaje al ejecutar el comando. "No se puede cargar la información de configuración de /usr/local/ssl/openssl.cnf". Consulte el paso 1b anterior para resolver esto.
Este paso le solicita información que debería estar en su certificado final, la agrupa junto con la mitad pública del par de claves RSA que se acaba de generar y firma todo con la mitad privada del par de claves. En este ejemplo, todo se dejó en blanco excepto el nombre DNS del servidor de prueba SSL. Tenga en cuenta el "-sha256", ya que el algoritmo predeterminado para las versiones actuales de OpenSSL es SHA-1.
openssl req -new -sha256 -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:.
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:.
Organization Name (eg, company) [Default Company Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server's hostname) []:www.example.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[C:\] type server.csr
-----BEGIN CERTIFICATE REQUEST-----
MIIEbDCCAlQCAQAwJzElMCMGA1UEAwwcdWx0cmF2aW9sZXQuc3dnLnVzbWEuaWJt
LmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK/bmWGdQa62sVtQ
HTNXnHsYg9rmj8TSo0tqdqfacoFHP71Nna66o497QMm3ZDRBXMEC2P3iGXBKMB5o
[Many lines removed]
nbXBaWgJqMk71f2vU1LnNQQresCBJpzNWgjyLaTszUR6eL8JD9WxddMK/82h9QVx
uFO005u3Fa2uC+8axiMKO3sSuVsgXHQpCuSnw2jDCQoeW/C/GSswsdWVyEzHMMjD
KQTH5iQLVPWArBoE1SV/RzG8tvLqH6JxHmSG7cnrgH0=
-----END CERTIFICATE REQUEST-----
4. Adquirir un certificado SSL/TLS de una CA
Este proceso varía de una CA a otra, pero generalmente copia el bloque de solicitud de certificado desde arriba en un formulario web y elige qué algoritmo de firma desea que use la CA. Siéntase libre de seleccionar uno de los algoritmos SHA-2 (SHA-256, SHA-384 y SHA-512): el archivo de keyring resultante funcionará bien en cualquier servidor 9.0.x, incluso aquellos sin la revisión para TLS y SHA-2.
Recibirá un certificado como el creado en los pasos autofirmados. Esto se puede mostrar utilizando el comando "type" desde un símbolo del sistema o abriendo el archivo en el Bloc de notas.
[C:\] type server.pem
-----BEGIN CERTIFICATE-----
MIIEyjCCArICCQCIqzNZtkev6TANBgkqhkiG9w0BAQUFADAnMSUwIwYDVQQDDBx1
bHRyYXZpb2xldC5zd2cudXNtYS5pYm0uY29tMB4XDTE0MTAwODE3NDUzMFoXDTI0
MTAwNTE3NDUzMFowJzElMCMGA1UEAwwcdWx0cmF2aW9sZXQuc3dnLnVzbWEuaWJt
[Many lines removed]
lysEvJF7MuiDfgOyUn2ZfmTpDm62dXalzXnBrGcAiPo5swds+UnN68BCejptUnti
TQ4rb9iXP4Zdz6jNuUOtuhlovyJWtUF27VQSdZLoqAoCM3pNybBVAh4FpapYw4XR
c6xhntH8Y6hyyxp1er8v26M9Kg6dgNZTXo3rKtMW+I4bu+ziMYuY9/oLR8nbEj2l
93Llwb/jwgxJBVZRwhU4M1JxETQBzc19pJ0kcE94
-----END CERTIFICATE-----
También puede recibir algunos de los certificados raíz intermedios de la CA. Tenga en cuenta también que el archivo recibido puede ser un .crt en lugar de .pem. El archivo .crt actuará igual que un archivo .pem cuando lo muestre.
6. Importe la clave privada del servidor, los certificados raíz y el certificado del servidor en el nuevo archivo de keyring
6a. Hay dos opciones para este paso. Puede realizar 6a - Opción 1 (concatenar servidor.key y server.pem en un solo archivo) O 6a - Opción 2 (emitir una serie de cuatro comandos de importación...).
6a - Opción 1: Concatenar la clave privada del servidor (servidor.key) y los certificados en un solo archivo:
Este paso varía del caso autofirmado. Tendrá más de un certificado en su archivo ".pem" y querrá colocarlos en orden con el certificado SSL "leaf" de su servidor primero y el certificado raíz en último lugar. Verifique que el paso 6b verifique que el pedido sea correcto. Si devuelve advertencias o errores, edite el archivo PEM y vuelva a verificarlo.
Tenga en cuenta lo siguiente:
- Las entidades emisoras de certificados devolverán con frecuencia un certificado firmado en un archivo .crt. Si también proporcionan los certificados raíz al devolver el archivo CSR, puede concatenar todos los archivos .crt en la clave privada mediante el comando "type" desde un símbolo del sistema de DOS.
- Los archivos deben concatenarse primero con la clave del servidor, el certificado del servidor a continuación, el certificado intermedio siguiente y el certificado raíz el último. La concatenación se puede realizar desde un símbolo del sistema DOS mediante el comando "type". El comando type toma una lista de archivos y los anexa juntos en un archivo de salida designado con un símbolo mayor que. Por ejemplo, type server.key server.crt intermediate.crt root.crt > server.txt en este ejemplo "server.txt" es el archivo proporcionado a kyrtool para importarlo a un keyring de Domino. Puede mostrar este archivo de salida en el Bloc de notas.
- Si los certificados raíz e intermedio no se proporcionan con el certificado firmado, exporte los certificados intermedio y raíz abriendo el certificado de servidor con Windows Crypto Extensions. Esto mostrará el servidor en una interfaz de usuario de tres pestañas. En la tercera pestaña, seleccione cada uno de los certificados de firma, seleccione mostrar y, a continuación, exporte ese certificado mediante el comando "guardar en archivo" de la segunda ficha. Guarde cada archivo de certificado utilizando el formato Base 64.
6a - Opción 2: Emita la siguiente serie de cuatro comandos de importación para combinar el certificado raíz, el certificado intermedio y la clave del servidor en el archivo de keyring .
NOTA IMPORTANTE: Si realiza esta opción, no necesitará realizar los pasos 6b y 6c. En su lugar, puede continuar directamente al Paso 7: "Examinar el archivo de keyring resultante".
#1 – Issue the ' import roots' command to import the root certificate
Kyrtool import roots -i C:\SSL\root.cer -k "C:\Program Files(x86)\IBM\Notes\data\keyring.kyr
#2- Issue the ' import roots' command to import the intermediate certificate
Kyrtool import roots -i C:\SSL\intermediate.cer -k "C:\Program Files(x86)\IBM\Notes\data\keyring.kyr"
#3 Issue the 'import keys' command to import the server key file
Kyrtool import keys -i C:\SSL\server.key -k "C:\Program Files(x86)\IBM\Notes\data\keyring.kyr"
#4 Issue the 'import certs' command to import the signed server certificate
Kyrtool import certs -i C:\SSL\sitecert.cer -k "C:\Program Files(x86)\IBM\Notes\data\keyring.kyr"
6b. Verifique el archivo de entrada:
Este es un ejemplo de un archivo PEM completo y ordenado correctamente:
[C:\] kyrtool ="c:\Program Files (x86)\IBM\Notes\notes.ini" verify "c:\Program Files (x86)\IBM\Notes\data\server.txt
KyrTool v1.0
Successfully read 2048 bit RSA private key
INFO: Successfully read 4 certificates
INFO: Private key matches leaf certificate
INFO: IssuerName of cert 0 matches the SubjectName of cert 1
INFO: IssuerName of cert 1 matches the SubjectName of cert 2
INFO: IssuerName of cert 2 matches the SubjectName of cert 3
INFO: Final certificate in chain is self-signed
Si recibe algún ERROR: líneas, debe resolver esos errores antes de pasar al paso 6c.
6c. Importe el par de claves y el certificado autofirmado:
[C:\] kyrtool =c:\lotus\notes\notes.ini import all -k c:\lotus\notes\data\keyring.kyr -i c:\lotus\notes\data\ssl\server.txt
Using keyring path 'c:\lotus\notes\data\keyring.kyr'
Successfully read 4096 bit RSA private key
SECIssUpdateKeyringPrivateKey succeeded
SECIssUpdateKeyringLeafCert succeeded
7. Examine el archivo
[C:\] kyrtool =c:\lotus\notes\notes.ini show keys -k c:\lotus\notes\data\keyring.kyr
[C:\] kyrtool =c:\lotus\notes\notes.ini show certs -k c:\lotus\notes\data\keyring.kyr
8. Copie su nuevo archivo de keyring e inicie el servidor de Domino Server.
Haga una copia de seguridad de sus archivos .kyr y .sth antiguos, apague el servidor, copie sus nuevos archivos de keyring y stash , reinicie el servidor y compruebe los resultados.
Artículo relacionado:
https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0073175