¿Cómo revoco el certificado y genero un CRL?

1

Creé un certificado CA autofirmado y luego creé un certificado de cliente usando este tutorial aquí . Solo estoy tratando de revocar el certificado del cliente:

openssl ca -keyfile rootCA.key -cert rootCA.crt  -revoke ../oldCert/old.pem superseded

Cuando lo intento, recibo este error:

Using configuration from /etc/ssl/openssl.cnf
unable to load certificate
140187823251392:error:0906D06C:PEM routines:PEM_read_bio:no start line:crypto/pem/pem_lib.c:691:Expecting: TRUSTED CERTIFICATE

He intentado casi todo lo que hay en Internet, pero solo produce el mismo error. ¿Cómo revoco el certificado y genero una CRL?

    
pregunta etnguyen03 17.09.2017 - 03:45
fuente

1 respuesta

1

Tu título es engañoso; está utilizando el archivo de configuración predeterminado, simplemente bien, como se muestra en la primera línea de salida.

  

¿Cómo revoco el certificado y genero una CRL?

Estos son dos pasos separados con OpenSSL.

Primero use openssl ca -revoke $certfile tanto como lo hizo, pero si desea especificar una razón (no es necesario) debe usar una marca como -crl_reason superseded no solo superseded . Este paso solo actualiza la 'base de datos' (un archivo de texto simple normalmente llamado index.txt , aunque puede configurarse de otra manera). Si la clave de CA y los archivos de certificación se especifican en el archivo de configuración, que normalmente deberían ser, no es necesario que los especifique en la línea de comandos. (Esta operación no los necesita realmente, pero sí los accede; consulte ¿Por qué OpenSSL necesita la clave privada para revocar un certificado? )

En cualquier momento después de que se actualice la 'base de datos', use openssl ca -gencrl [options] para generar realmente una CRL a partir del contenido actual (actualizado). El período de CRL (en días, horas o segundos) debe especificarse en la línea de comandos o en el archivo de configuración; La configuración por defecto ascendente lo establece en 30 días, pero no sé qué empaquetado u otra modificación está utilizando. Se pueden agregar otras opciones según la página del manual. Esta operación necesita la clave de CA y el certificado, porque la CRL está firmada con esa clave y marcada para su verificación con ese certificado.

Este esquema de 'base de datos' se identifica, brevemente, en el primer párrafo de texto de la página del manual para ca(1ssl?) en un sistema Unixy con OpenSSL o en la web :

  

El comando ca es una aplicación de CA mínima. Se puede utilizar para firmar solicitudes de certificado en una variedad de formas y generar CRL. También mantiene una base de datos de texto de certificados emitidos y su estado.

La 'base de datos de texto' es el archivo index.txt (normalmente) y el 'estado [de los certificados emitidos]' es si, cuándo y por qué se revocaron. Se indica si el primer campo delimitado por tabuladores es V para válido o R para revocado; la otra información está en el tercer campo y debería ser bastante obvia.

    
respondido por el dave_thompson_085 17.09.2017 - 07:08
fuente

Lea otras preguntas en las etiquetas