Elencare tutti i certificati SSL disponibili


35

Il mio cliente git sostiene

error: Peer's Certificate issuer is not recognized.

Ciò significa che non riesce a trovare la chiave del server SSL corrispondente nel keyring di sistema globale. Voglio verificarlo guardando l' elenco di tutte le chiavi ssl disponibili a livello di sistema su un sistema gentoo linux. Come posso ottenere questo elenco?

Risposte:


65

Non sono le chiavi SSL che desideri, sono le autorità di certificazione e più precisamente i loro certificati.

Puoi provare:

awk -v cmd='openssl x509 -noout -subject' '
    /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt

Per ottenere "l'oggetto" di ogni certificato CA in /etc/ssl/certs/ca-certificates.crt

Attenzione che a volte si ottiene quell'errore quando i server SSL dimenticano di fornire i certificati intermedi.

Utilizzare openssl s_client -showcerts -connect the-git-server:443per ottenere l'elenco dei certificati inviati.


2
//, Questo non funziona su CEntOS 6, ma ho aggiunto una risposta per CEntOS 6 qui: unix.stackexchange.com/a/363309/48498
Nathan Basanese

1
La lista da trust listdal pacchetto di p11-kit è essenzialmente lo stesso?
Pablo A

15

Non sono sicuro di Gentoo ma la maggior parte delle distro mettono i loro certificati soft-link in una posizione a livello di sistema all'indirizzo /etc/ssl/certs.

  • I file chiave vanno in /etc/ssl/private
  • I file effettivi forniti dal sistema si trovano in /usr/share/ca-certificates
  • I certificati personalizzati vanno in /usr/local/share/ca-certificates

Ogni volta che si inserisce un certificato in uno dei percorsi sopra menzionati, eseguire update-ca-certificatesper aggiornare gli /etc/ssl/certselenchi.


1
/etc/ssl/certsè la cartella corretta in gentoo. Ma i file non sono ben leggibili per gli occhi umani.
Jonas Stein

3
È update-ca-certificatescon un ulteriore s(non posso modificarlo da solo, in quanto è solo una modifica di un carattere).
Slaven Rezic,

@SlavenRezic - Qualcuno l'ha risolto.
Craig S. Anderson

3

Avevo l'obbligo di elencare tutti i certificati sul nostro server e di avvisare se scadono. Abbiamo trovato questo comando:

locate .pem | grep "\.pem$" | xargs -I{} openssl x509 -issuer -enddate -noout -in {}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.