Firma de Sistema
Crear Firma de Sistema
Para crear una firma de sistema que luego sea utilizada por Araí-Documentos, debemos generar un certificado que posea la capacidad de firma entre sus usos específicos.
Configuracion de root-ca.conf, signing-ca.conf y email.conf
Los archivos de configuración y la estructura de directorios se encuentran dentro de este archivo zip y se puede descomprimir en una carpeta ./var/
creada localmente.
En el apartado [ ca_dn ]
de los primeros dos archivos, y apartado [ email_dn ]
del email.conf
tendremos algo similar a esto:
0.domainComponent = "ar"
1.domainComponent = "edu"
2.domainComponent = "uunn"
organizationName = "SIU"
organizationalUnitName = "SIU"
commonName = "Universidad UUNN"
Los domainComponent
simbolizan cada parte de una url. Por ejemplo: Para https://expedientes.siu.edu.ar
, tendriamos estos domainComponent
0.domainComponent = "ar"
1.domainComponent = "edu"
2.domainComponent = "siu"
3.domainComponent = "expedientes"
Se puede agregar tantos domainComponent
como sea necesario.
El organizationName
, organizationalUnitName
y commonName
pueden diferir, pero es importante recordar todos estos datos, ya que más adelante nos lo pediran, junto con un mail.
Previo a crear la Root CA, es necesario reasignar los permisos de las carpetas ./var/stamper/ca/root-ca/private
y ./var/stamper/ca/signing-ca/private
de la siguiente forma:
chmod 700 ca/root-ca/private
chmod 700 ca/signing-ca/private
Creando Root CA
Paso 1: Parado en la carpeta stamper, crear los siguientes archivos
cp /dev/null ca/root-ca/db/root-ca.db
cp /dev/null ca/root-ca/db/root-ca.db.attr
echo 01 > ca/root-ca/db/root-ca.crt.srl
echo 01 > ca/root-ca/db/root-ca.crl.srl
Paso 2: Creamos la private key y el certificate signing request (CSR) para la root CA. Nos pedira una pass para proteger la key. La configuracion que se usara sera la especificada en la seccion [req]
del archivo /etc/root-ca.conf
openssl req -new \
-config etc/root-ca.conf \
-out ca/root-ca.csr \
-keyout ca/root-ca/private/root-ca.key
Paso 3: Creamos la root CA en base al root-sa.csr
que creamos en el paso anterior. Este root CA es auto firmado y se configura con lo especificado en la seccion [ca]
del archivo /etc/root-ca.conf
openssl ca -selfsign \
-config etc/root-ca.conf \
-in ca/root-ca.csr \
-out ca/root-ca.crt \
-extensions root_ca_ext
Creando firmador CA
Paso 1: Se repite el paso 1 de la seccion Creando root CA
cp /dev/null ca/signing-ca/db/signing-ca.db
cp /dev/null ca/signing-ca/db/signing-ca.db.attr
echo 01 > ca/signing-ca/db/signing-ca.crt.srl
echo 01 > ca/signing-ca/db/signing-ca.crl.srl
Paso 2: Se repite el paso 2 de la seccion Creando root CA
openssl req -new \
-config etc/signing-ca.conf \
-out ca/signing-ca.csr \
-keyout ca/signing-ca/private/signing-ca.key
Al igual que en la seccion anterior, pide una pass para la key y usa la parte de [req]
del archivo de configuracion que es etc/signing-ca.conf
Es importante tener en cuenta que para cada paso que involucre el uso de una key, nos pedira la contraseña de la misma, por lo que si usamos una pass distinta para el signing-ca.key
y el root-ca.key
, debemos prestar atencion a que estemos usando la pass correcta.
Paso 3: Con el root CA creamos el firmador CA
openssl ca \
-config etc/root-ca.conf \
-in ca/signing-ca.csr \
-out ca/signing-ca.crt \
-extensions signing_ca_ext
Utilizacion de firmador CA
Paso 1: Crear email request
openssl req -new \
-config etc/email.conf \
-out certs/stamper.csr \
-keyout certs/stamper.key
Al correr esto nos pedira que ingresemos algunos componentes. Estos deben ser iguales a lo que tengamos en el apartado [ ca_dn ]
del root-ca.conf
Ejemplo: si tenemos lo siguiente en el root-ca.conf
:
[ ca_dn ]
0.domainComponent = "ar"
1.domainComponent = "edu"
2.domainComponent = "uunn"
organizationName = "SIU"
organizationalUnitName = "SIU"
commonName = "Universidad UUNN"
Podriamos completar los datos del stamper.key
la siguiente manera: DC=ar, DC=edu, DC=uunn, O=SIU, CN=Universidad UUNN, emailAddress=it@uunn.edu.ar
El resto de los campos pueden quedar vacios/por defecto.
Paso 2: Crear certificado de email
openssl ca \
-config etc/signing-ca.conf \
-in certs/stamper.csr \
-out certs/stamper.crt \
-extensions email_ext
Una copia del certificado es guardada bajo el nombre de ca/signing-ca/01.pem
Exportar PKCS#12 bundle
openssl pkcs12 -export \
-name "KeyStamper" \
-inkey certs/stamper.key \
-in certs/stamper.crt \
-out certs/keystore_stamper.p12
En este paso creamos el keystore_stamper.p12
que necesitaremos para crear la config de acceso al certificado.
Nota: Recuede los valores ingresados para la opción
--name
y laclave
de importación que le solicito el comando, ya que los necesitará a futuro para configurar el ALIAS y la CLAVE de acceso al certificado.
Retorne a la página que lo trajo aquí para continuar con la configuración del deployment.
(Opcional) Visualizar los datos
Para volcar toda la información del archivo PKCS#12 que hemos creado a la pantalla, se usa este comando
openssl pkcs12 -info -in keystore_stamper.p12 -nodes