Ho firmato e rilasciato alcuni certificati client con la mia CA. Ora posso revocarli in questo modo:
openssl ca -name ${CA_NAME} -revoke ${USERS_DIR}/${USERNAME}.crt -keyfile $SSL_PRIVATE_DIR/ca.key -cert $SSL_CERTS_DIR/ca.crt
( da qui )
Tuttavia ciò richiede l'accesso a * .pems nella cartella new_certs_dir (ad esempio 01.pem, 02.pem). Posso usarli ma sembra che l'unica informazione che ho bisogno per revocare un certificato cliente sia il suo numero di serie. Tuttavia la pagina man per il flag di revoca dice che deve essere il file crt / pem:
-revoke filename
a filename containing a certificate to revoke.
Ho anche notato che posso modificare manualmente il file del database, cambiando il V
(valido, presumibilmente) in R
(revocato, presumibilmente) e fornendo un timestamp per la seconda colonna timestamp, in questo modo:
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
Se poi creo il crl dopo la modifica,
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
il certificato corrispondente a quel seriale non è più valido. Quindi sembra che tutto ciò di cui avevo bisogno fosse il seriale, nonostante OpenSSL non fornisse quell'opzione.
Quindi la mia domanda è, c'è un modo kosher per revocare un certificato usando solo il suo numero di serie? O ci sono motivi importanti per cui ciò non viene fatto? Incontrerò problemi se modifico manualmente il file di database come sopra?