Ejemplo: archivo de configuración de Microsoft Certificate Store

Este archivo de ejemplo le muestra cómo crear un almacén de claves de servidores y un certificado raíz de servidor para utilizarlo con un Rational DOORS y cómo se puede configurar Microsoft Certificate Store (MCS) para validar el certificado de servidores. Al archivo de ejemplo le sigue un desglose de los mandatos y parámetros.

Archivo de ejemplo

REM Create a server keystore file
gsk8capicmd -keydb -create -db server.kdb -pw ser123 -stash

REM Create a server root certificate in server.kdb, and add it to the MCS
gsk8capicmd -cert -create -db server.kdb -pw ser123 -label "IBMEDCA1" -dn "CN=IBMEDCA1"
gsk8capicmd -cert -extract -db server.kdb -pw ser123 -label "IBMEDCA1" -target temp1.arm
gsk8capicmd -cert -add -db GSK_MS_CERTIFICATE_STORE -label "IBMEDCA1" -file temp1.arm

REM Create and sign a server certificate
gsk8capicmd -certreq -create -db server.kdb -label IBMSV1 -dn "CN=IBMEDSERV,dc=ukednode1" -file temp2.arm
gsk8capicmd -cert -sign -db server.kdb -pw ser123 -label IBMEDCA1 -file temp2.arm -target temp3.arm
gsk8capicmd -cert -receive -file temp3.arm -db server.kdb -pw ser123

REM Extract the root certificate from the MCS and add it to the server kdb file
gsk8capicmd -cert -extract -db GSK_MS_CERTIFICATE_STORE -label "CN=Coy Root" -target temp4.arm
gsk8capicmd -cert -add -db server.kdb -pw ser123 -label "CN=Coy Root" -file temp4.arm

Crear un archivo de almacén de claves del servidor

gsk8capicmd -keydb -create -db server.kdb -pw ser123 -stash
gsk8capicmd -keydb -create
El mandato gsk8capicmd es una herramienta para gestionar claves, certificados y solicitudes de certificado en una base de datos de claves. La sintaxis para gsk8capicmd es: gsk8capicmd modifiers object action options. En este ejemplo, -keydb es una base de datos de claves object, -create es action que se debe realizar y -db es option. El mandato crea una base de datos de claves.
-db server.kdb -pw ser123
La base de datos de claves se denomina server.kdb y tiene una contraseña (-pwd). En este ejemplo, la contraseña es ser123.
-stash
"Stash" oculta la contraseña de la base de datos de claves después de su creación. Un archivo stash se utiliza como una manera automática de proporcionar una contraseña. Cuando accede a una base de datos de claves, el sistema primero comprueba la existencia de un archivo stash. Si hay un archivo, el contenido del archivo se descifra y se utiliza como entrada de la contraseña. Al especificar la etiqueta -stash durante la creación de la acción (action), la contraseña se oculta en un archivo que se denomina así: nombre_base_datos_claves.sth.

Crear un certificado raíz en el almacén de claves y añadirlo en MCS

El certificado raíz se utiliza para crear un certificado de servidor. Dado que el certificado raíz se encuentra en MCS, los clientes de Rational DOORS pueden validar el certificado del servidor utilizando MCS.
gsk8capicmd -cert -create -db server.kdb -pw ser123 -label "IBMEDCA1" -dn "CN=IBMEDCA1"
-cert -create
Este es el mandato create certificate (-create action y -cert object).
-label "IBMEDCA1"
Se adjunta una etiqueta al certificado. En este ejemplo, el nombre es "IBMEDCA1". La etiqueta se utiliza para identificar de forma exclusiva el certificado mediante un usuario.
-dn "CN=IBMEDCA1"
El nombre distinguido -dn identifica de forma exclusiva el certificado. La entrada debe ser una cadena entre comillas con el siguiente formato (CN es el único obligatorio):
  • CN=nombre común
  • O=organización
  • OU=unidad organizativa
  • L=ubicación
  • ST=estado, provincia
  • C=país
  • DC=componente de dominio
  • EMAIL=dirección de correo electrónico
En este ejemplo, el nombre distinguido es "CN=IBMEDCA1".
gsk8capicmd -cert -extract -db server.kdb -pw ser123 -label "IBMEDCA1" -target temp1.arm
-cert -extract -label "IBMEDCA1"
Este es el mandato extract certificate (-extract action y -cert object). El mandato extrae datos de certificado con el nombre (-label"IBMEDCA1") desde la base de datos de claves y los ubica en un archivo.
-target temp1.arm
El archivo en el que se extrae el certificado.
gsk8capicmd -cert -add -db GSK_MS_CERTIFICATE_STORE -label "IBMEDCA1" -file temp1.arm
-cert -add -db GSK_MS_CERTIFICATE_STORE
Este es el mandato add certificate (-add action y -cert object). El mandato añade el certificado que se extrajo (-label"IBMEDCA1" -file temp1.arm) en MCS (-db GSK_MS_CERTIFICATE_STORE).

Crear un certificado de servidor que está firmado con el certificado raíz

El certificado de servidor se almacena en el almacén de claves. En este ejemplo, se escribe el nombre distinguido para un servidor que se ejecuta en un sistema que se denomina IBMEDSERV.
gsk8capicmd -certreq -create -db server.kdb -label IBMSV1 -dn "CN=IBMEDSERV,dc=ukednode1" -file temp2.arm
-certreq -create
Este es el mandato create certificate request (-create action y -certreq object).
-label IBMSV1
Se adjunta una etiqueta al certificado. En este ejemplo, el nombre es IBMSV1. La etiqueta se utiliza para identificar de forma exclusiva el certificado mediante un usuario. IBMSV1 es el nombre del certificado predeterminado que el servidor de Rational DOORS utilizará si no se especifica un nombre al iniciarse el servidor.
-dn "CN=IBMEDSERV,dc=ukednode1"
El nombre distinguido -dn identifica de forma exclusiva el certificado. En este ejemplo, el nombre distinguido es "CN=IBMEDSERV,dc=ukednode1".
Nota: La parte IBMEDSERV del nombre distinguido debe ser el nombre del servidor o el valor que se utiliza para -serverhostname si esta opción se utiliza cuando se haya iniciado el servidor.
-file temp2.arm
El nombre de archivo de la solicitud de certificado se extrae durante el proceso de creación de solicitud de certificado.
gsk8capicmd -cert -sign -db server.kdb -pw ser123 -label IBMEDCA1 -file temp2.arm -target temp3.arm
-cert -sign
Este es el mandato sign certificate (-sign action y -cert object). El mandato permite firmar una solicitud de certificado mediante un certificado existente que se almacena en una base de datos de claves. El mandato acepta una solicitud de certificado en un formato de archivo especificado y con información detallada del certificado que contiene la clave privada que se utiliza durante el proceso de firma.
-file temp2.arm
El nombre y ubicación de la solicitud de certificado que se debe firmar.
-target temp3.arm
El nombre del archivo que contiene el certificado firmado.
gsk8capicmd -cert -receive -file temp3.arm -db server.kdb -pw ser123
-cert -receive
Este es el mandato receive certificate (-receive action y -cert object). El mandato almacena un certificado que se ha solicitado para firmar una solicitud de certificado. El nombre del archivo del certificado que se recibirá.
-file temp3.arm
El nombre del archivo del certificado que se recibirá.

Copiar el certificado raíz para certificados desde MCS y añadirlo en el almacén de claves del servidor

La parte del ejemplo permite al servidor validar los certificados.
gsk8capicmd -cert -extract -db GSK_MS_CERTIFICATE_STORE -label "CN=Coy Root" -target temp4.arm
-cert -extract -db GSK_MS_CERTIFICATE_STORE -label -"CN=Coy Root" target temp4.arm
Este es el mandato extract certificate (-extract action y -cert object). El mandato extrae datos de certificado con nombre (-label"CN=Coy Root") desde la base de datos de MCS (-db GSK_MS_CERTIFICATE_STORE) y lo ubica en un archivo (temp4.arm).
gsk8capicmd -cert -add -db server.kdb -pw ser123 -label "CN=Coy Root" -file temp4.arm
-cert -add -label "CN=Coy Root" -file temp4.arm
Este es el mandato add certificate (-add action y -cert object). El mandato añade un certificado al almacén de claves con nombre.
Nota: En estos mandatos, el nombre del certificado raíz es CN=Coy Root. El certificado raíz que utiliza tendrá un nombre más largo. Además, si su organización utiliza más de un certificado root, deberá extraer y añadir cada certificado raíz individualmente. Por ejemplo, un certificado raíz se puede aplicar a las tarjetas que los 500 usuarios utilizan y otro certificado raíz se puede aplicar a los 2.000 usuarios restantes. En este caso, debe añadir los dos certificados raíz server.kdb.

Comentarios