Verifica del certificato con la riga di comando di OpenSSL

0

Sto cercando di verificare un certificato casuale con OpenSSL in Windows. Ho installato Win32 OpenSSL , ma come faccio a verificare un certificato casuale con la riga di comando di OpenSSL? So che ci sono altri modi, ma voglio usare la linea di comando di OpenSSL:)

Grazie per il tuo aiuto!

EDIT: Quando uso openssl verify cacert.pem mi dà questo errore:

Nuovoerrore:

    
posta hudhud 30.09.2016 - 21:34
fonte

3 risposte

1

Il primo errore è dovuto al tentativo di "leggere" (e verificare) un file inesistente.

Il secondo sembra non essere un errore, ma un errore "corretto" da verificare.

Che cosa dice in realtà il messaggio che non riesce a trovare la CA che ha emesso il certificato che stai testando, e quindi non può validare la catena (che sarebbe in genere, al minimo rilascio di CA > il tuo cert).

La riga SSLeay demo server nel tuo secondo output tenderebbe a indicare che uno dei motivi è che hai appena generato una nuova CA.

Sembra anche che tu stia provando a convalidare il tuo certificato CA, che è un po 'ridondante, ma se vuoi davvero farlo, dovresti eseguire:

openssl verify -CAfile cacert.pem cacert.pem

Un esempio più utile / pratico sarebbe la convalida di un cert (si spera) noto-buono. Non sei sicuro di poter eseguire pipe su Windows, ma su Linux, potresti fare:

openssl s_client -connect google.com:443 </dev/null | openssl verify

Se vuoi vedere il certificato, puoi eseguire:

openssl s_client -connect google.com:443 </dev/null | openssl x509 -text

Penso che potresti voler dedicare un po 'di tempo a leggere come funziona PKI: in genere, una PKI viene creata quando un'entità "fidata" (un'autorità di certificazione) emette un certificato per un'altra entità - fondamentalmente garantisce per tale altra entità (che può essere un'organizzazione, un server, un utente, ecc.) è quella che dichiara di essere.

Quindi la convalida / verifica di un certificato comporta quanto segue (spiegazione semplificata in modo grossolano):

  • dal tuo cert utente finale (vale a dire il cert utilizzato nel dominio che stai controllando - l'utente qui è qualunque cosa stia facendo uso del certificato, non necessariamente un umano), l'Emittente è controllato, e la chiave pubblica dell'Emittente è anche estratto (per il confronto con le chiavi conosciute per quell'emittente).
  • si può quindi verificare prima che il certificato dell'utente finale sia firmato correttamente (cioè la firma contenuta nel certificato è firmata dalla chiave privata collegata alla chiave pubblica dell'Emittente, che è inclusa nel certificato)
  • potresti quindi convalidare il certificato dell'Emittente, controllando una lista di certificati di buona reputazione (che è ciò che fa il negozio di certificati OS), o ripetendo i due passaggi precedenti se l'Emittente ha emesso il suo certificato da qualche altro entità.

Ad un certo punto, si finisce con un certificato autofirmato appartenente a un'entità come Verisign / LetsEncrypt / YourCAHere, che è la radice della catena di fiducia che la PKI riflette.

    
risposta data 28.02.2017 - 12:28
fonte
0

Un paio di minuti fa altro post correlato apparso su questo sito. L'autore ha collegato questa pagina che mi fa pensare che dovresti controllare

openssl verify
    
risposta data 30.09.2016 - 21:46
fonte
0

openssl verify -CAfile ca-bundle.crt certificate.crt

o

openssl verify -CApath cadirectory certificate.crt

Per verificare un certificato, è necessario che la catena torni a un'autorità di certificazione principale delle autorità di certificazione che l'hanno firmata. Se si tratta di un certificato server sull'internet pubblica, è probabile (ma non necessariamente) una delle CA radice principali che sono attendibili dai browser. Le chiavi pubbliche della CA principale vengono fornite con ogni browser (nell'equivalente della directory ca nel secondo comando openssl). In definitiva, ogni utente dei certificati di root deve decidere quali autorità si fidano - per i browser, tale decisione viene presa dai produttori del browser ed è un Big Deal (tm). È possibile trovare le CA radice di ciascun trust e utilizzarle nella directory root ca, se lo si desidera, o scegliere il proprio.

    
risposta data 30.09.2016 - 21:48
fonte

Leggi altre domande sui tag