openssl ca -revoke signed / 0A.pem -config caconfig.cnf
¿Qué hace esto que requiere la clave privada de la AC? ¿Hace algo más que actualizar index.txt?
openssl ca -revoke signed / 0A.pem -config caconfig.cnf
¿Qué hace esto que requiere la clave privada de la AC? ¿Hace algo más que actualizar index.txt?
Es un error de OpenSSL (al menos en la versión 1.0.1c); precisamente, un error de la línea de comandos "ca" manejo de opciones. Si observa el archivo fuente apps/ca.c
en código fuente de OpenSSL , puede ver que la función MAIN()
comienza analizando las opciones de la línea de comandos, luego lee el archivo de configuración, luego hace esto:
/*****************************************************************/
/* report status of cert with serial number given on command line */
if (ser_status)
{
/* some stuff */
goto err;
}
/*****************************************************************/
/* we definitely need a private key, so let's get it */
if ((keyfile == NULL) && ((keyfile=NCONF_get_string(conf,
section,ENV_PRIVATE_KEY)) == NULL))
{
lookup_fail(section,ENV_PRIVATE_KEY);
goto err;
}
if (!key)
{
free_key = 1;
if (!app_passwd(bio_err, passargin, NULL, &key, NULL))
{
BIO_printf(bio_err,"Error getting password\n");
goto err;
}
}
pkey = load_key(bio_err, keyfile, keyform, 0, key, e,
"CA private key");
Lo que significa que el código reconocerá el caso especial de verificación del estado de revocación de un certificado (opción de línea de comando -status
), que por supuesto no necesita la clave privada de CA, pero de lo contrario, insistirá al cargar la clave privada de la AC, si será realmente necesaria o no.
En particular, revocar un certificado, en el contexto de esta herramienta, significa marcarlo como revocado en la "base de datos" index.txt
del certificado emitido, que no utiliza la clave privada de CA. Lo que utiliza la clave privada de la CA es firmar la CRL (que informa al resto del mundo de que el certificado realmente se ha revocado), pero la opción de línea de comando -revoke
no activa eso (es la opción -gencrl
lo que implica la emisión de una nueva CRL).
Resumen: " openssl ca -revoke
" implica leer la clave privada de CA sin ninguna razón. Siéntase libre de parchar la herramienta desde su código fuente y posiblemente enviar el parche a los mantenedores de OpenSSL.
La clave privada de la CA es necesaria porque la revocación debe estar firmada por la CA. De lo contrario, es posible que la revocación sea realizada por cualquier entidad.
Uwe Plonus tiene razón. La CA siempre proporciona una lista de revocación ( CRL ) en la que todos los certificados revocados se enumeran por su número de serie y otra información como la fecha y hora en que se revocó un crt.
Consulte enlace para obtener más información.
Lea otras preguntas en las etiquetas openssl certificate-revocation