Come revocare il certificato e generare un CRL?

1

Ho creato un certificato CA autofirmato, quindi ho creato un certificato client utilizzando questo tutorial qui . Sto solo cercando di revocare il certificato del cliente:

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

Quando provo, ottengo questo errore:

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

Ho provato praticamente tutto quello che c'è su Internet, ma ha solo lo stesso errore. Come revocare il certificato e generare un CRL?

    
posta etnguyen03 17.09.2017 - 03:45
fonte

1 risposta

1

Il tuo titolo è fuorviante; stai usando il file di configurazione di default, bene, come mostrato nella prima riga di output.

How do I revoke the certificate and generate a CRL?

Questi sono due passaggi separati con OpenSSL.

Prima usa openssl ca -revoke $certfile come hai fatto tu, ma se vuoi specificare un motivo (non è necessario) devi usare un flag come -crl_reason superseded e non solo superseded . Questo passaggio aggiorna solo il 'database' (un semplice file di testo normalmente chiamato index.txt sebbene possa essere configurato diversamente). Se la chiave CA e i file cert sono specificati nel file di configurazione, che normalmente dovrebbero essere, non è necessario specificarli nella riga di comando. (Questa operazione non ha realmente bisogno di loro ma li accede, vedi Perché OpenSSL ha bisogno della chiave privata per revocare un certificato? )

Ogni volta che il 'database' viene aggiornato, usa openssl ca -gencrl [options] per generare effettivamente un CRL dal contenuto corrente (aggiornato). Il periodo CRL (in giorni, ore o secondi) deve essere specificato sulla riga di comando o nel file di configurazione; la configurazione predefinita upstream lo imposta a 30 giorni, ma non so quale pacchetto o altra modifica si sta utilizzando. Altre opzioni possono essere aggiunte secondo la pagina man. Questa operazione richiede la chiave e il certificato CA, poiché il CRL è firmato con quella chiave e contrassegnato per la verifica con tale certificato.

Questo schema "database" è identificato, piuttosto brevemente, nel primo paragrafo di testo della pagina man per ca(1ssl?) su un sistema Unix con OpenSSL o sul web :

The ca command is a minimal CA application. It can be used to sign certificate requests in a variety of forms and generate CRLs it also maintains a text database of issued certificates and their status.

Il 'database di testo' è il file index.txt (normalmente) e 'stato [dei certificati emessi]' è se, quando e perché sono stati revocati. Se è indicato dal primo tabelimitato campo che è V per valido o R per revocato; l'altra informazione è nel terzo campo e dovrebbe essere abbastanza ovvia.

    
risposta data 17.09.2017 - 07:08
fonte