OpenSSL: impossibile ottenere il certificato emittente locale

Ho un certificato C. pfx che mi è stato dato di lavorare con OpenSSL. Il certificato C. pfx è il seguente percorso di Certificazione: C->B>Un

Ho convertito C. pfx per PEM utilizzando il seguente comando:
openssl pkcs12 -in C. pfx -out C. pem -nodi-FUNZIONA OK

Ho aperto il certificato C. pem nel file editor e vedere che ha entrambe le RSA CHIAVE PRIVATA e il CERTIFICATO parti.

Vedo anche A) e B) certificati installati sotto di Fiducia Roor Certificazione Athorities store in Windows XP.

L’obiettivo è quello di firmare /cifrare, decifrare e verificare un file di test utilizzando OpenSSL per Windows versione 1.0.1 c (attualmente l’ultima versione)

Utilizzare i seguenti comandi:

–A SEGNO–

openssl smime -sign -signer C.pem -in test.txt -out test.tmp    -- WORKS OK

–PER CRITTOGRAFARE–

openssl smime -encrypt -in test.tmp -out test.enc C.pem     -- WORKS OK

–PER DECIFRARE–

openssl smime -decrypt -in test.enc -recip C.pem -inkey C.pem -out test1.tmp    -- WORKS OK

–PER VERIFICARE–

openssl smime -verify -in test1.tmp -CAfile "C.pem" -out notes1.txt -- FAILS

Ho usato la console MMC per esportare B e certificati CER file e poi convertirli in PEM usando OpenSSL. Dopo che ho provato le seguenti 2:

openssl smime -verify -in test1.tmp -CAfile "A.pem" -out notes1.txt -- FAILS

openssl smime -verify -in test1.tmp -CAfile "B.pem" -out notes1.txt -- FAILS

Tutti e 3 i tentativi di VERIFICARE la non riuscita con il seguente errore:

Verification failure
3672:error:21075075:PKCS7 routines:PKCS7_verify:certificate verify error:.\crypt
o\pkcs7\pk7_smime.c:342:Verify error:unable to get local issuer certificate

Che cosa sto facendo di sbagliato?

 

One Reply
  1. 20

    Quando si utilizza openssl smime verify openssl tentativi per verificare che il certificato d’uso è affidabile, controllando la propria firma (la firma del certificato, non la firma nel messaggio firmato che ti ha chiesto di verificare). Per farlo deve avere una copia del certificato per la chiave della CA che ha emesso il certificato.

    Il -CAfile parametro viene utilizzato per passare il nome del file contenente il certificato della CA, il certificato della chiave usata per firmare il messaggio. È possibile specificare il certficiate della chiave usata per firmare il messaggio con un -certfile parametro … ma nel tuo caso il certificato sarà in test.tmp file (si può omettere tale specificando -nocerts quando si firma il messaggio).

    Per sopprimere la verifica del certificato di chiave quando si verifica un messaggio, è possibile fornire il -noverify parametro per il comando verify (anche se openssl smime verify -noverify fa sembrare un po ‘ strano).

    • +1 per il openssl smime -verify -noverify proprio quello che mi serviva!
    • Se il comando è più contraddittorie.

Lascia un commento