He firmado y emitido algunos certificados de cliente con mi CA. Ahora puedo revocarlos así:
openssl ca -name ${CA_NAME} -revoke ${USERS_DIR}/${USERNAME}.crt -keyfile $SSL_PRIVATE_DIR/ca.key -cert $SSL_CERTS_DIR/ca.crt
( desde aquí )
Sin embargo, esto requiere acceso a las * .pems en la carpeta new_certs_dir (por ejemplo, 01.pem, 02.pem). Puedo usarlos pero parece que la única información que necesito para revocar un certificado de cliente es su número de serie. Sin embargo, la página del manual para la bandera de revocación dice que tiene que ser el archivo crt / pem:
-revoke filename
a filename containing a certificate to revoke.
También he notado que puedo editar manualmente el archivo de base de datos, cambiando el V
(válido, probablemente) a un R
(revocado, probablemente) y proporcionando una marca de tiempo para la segunda columna de marca de tiempo, como por ejemplo:
V 180408071318Z 01 unknown /C=AU/ST=NSW/O=Blah/OU=Blah/CN=CA
V 180408071319Z 02 unknown /C=AU/ST=NSW/O=Blah/OU=Blah/CN=CA
a
V 180408071318Z 01 unknown /C=AU/ST=NSW/O=Blah/OU=Blah/CN=CA
R 180408071319Z 180408081319Z 02 unknown /C=AU/ST=NSW/O=Blah/OU=Blah/CN=CA
Si luego genero el crl después de editar,
openssl ca -name ${CA_NAME} -gencrl -keyfile $SSL_PRIVATE_DIR/ca.key -cert $SSL_CERTS_DIR/ca.crt -out $SSL_PRIVATE_DIR/ca.crl -crldays 1095
el certificado correspondiente a esa serie ya no es válido. Así que parece que todo lo que necesitaba era la serie, a pesar de que openssl no ofrecía esa opción.
Entonces, mi pregunta es, ¿hay alguna forma kosher de revocar un certificado usando solo su número de serie? ¿O hay razones importantes por las que esto no se hace? ¿Tendré problemas si edito manualmente el archivo de la base de datos como arriba?