Generar un certificado

Esta es una tarea del vendedor de certificados o, mejor dicho, de la autoridad de certificación (CA == Certification Authority).

La forma de generar un certificado es firmar un pedido de certificado previamente generado por el cliente.

La CA recibe un pedido de firma de certificado que es un archivo de texto (normalmente con extensión .csr).

Tenemos que estar con el usuario de la CA y sus variables de entorno ${CA_DIR} y ${OPENSSL_CONF} configuradas (ver ../CrearUnaCertificationAuthority).

Creamos unas variables de entorno para facilitarnos el proceso:

# El nombre del archivo (sin la extensión) del pedido de certificado:
export CSR_BASENAME=www.example.org_HTTP_00
# La extensión del pedido de certificado:
export REQ_EXT="csr"
# La extensión que le vamos a poner al certificado que generemos
export CERT_EXT="crt"

Ponemos el archivo con el pedido de firma de certificado en ${CA_DIR}/reqs y vamos a generar un certificado llamado ${CSR_BASENAME}.${CERT_EXT}  para darle al cliente (en el caso del ejemplo www.example.org_HTTP_00.crt.

Ahora, firmamos el requerimiento:

openssl ca -utf8 -in ${CA_DIR}/reqs/${CSR_BASENAME}.${REQ_EXT}\
  -out ${CA_DIR}/signed_certs/${CSR_BASENAME}.${CERT_EXT}

Primero nos va a pedir la passphrase de la CA y luego nos va a mostrar los datos del requerimiento y nos va a pedir confirmación de esos datos y luego nos pedirá una confirmación más para hacer el commit.

El certificado lo genera donde le dijimos (${CA_DIR}/signed_certs/${CSR_BASENAME}.${CERT_EXT} ) para dárselo al cliente, pero además, genera un XX.pem (idéntico) en ${CA_DIR}/certs donde XX es el número de serie correlativo (desde el 01 que creamos al principio).

OpenSsl/GenerarUnCertificado (última edición 2008-11-20 12:03:25 efectuada por MarianoAbsatz)