it-swarm-eu.dev

Come salvare un certificato SSL del server remoto localmente come file

Devo scaricare un certificato SSL di un server remoto (non HTTPS, ma l'handshake SSL dovrebbe essere lo stesso di Google Chrome/IE/wget e arricciare tutti danno errori di controllo del certificato fallito) e aggiungere il certificato come ho fiducia nei miei computer portatili Windows, perché non sono in grado di convincere i miei IT a darmi il certificato CA.

questo è per le comunicazioni da ufficio, quindi non posso davvero usare il vero cliente per ottenere il certificato.

Come faccio a farlo, ho Windows 7 e una pila di Linux a portata di mano, quindi qualsiasi strumento/linguaggio di scripting va bene.

296
Kimvais

Se hai accesso a OpenSSL, prova

openssl s_client -connect {HOSTNAME}:{PORT} -showcerts

sostituendo {HOSTNAME} e {PORT} con qualunque siano i tuoi valori.

296
gbroiles

Un metodo rapido per ottenere il certificato tirato e scaricato sarebbe quello di eseguire il seguente comando che convoglia l'output da -showcerts al comando x509 ssl che rimuove tutto ciò che è estraneo. Per esempio:

openssl s_client -showcerts -connect server.edu:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >mycertfile.pem

Per usare il certificato, con wget,

wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem
219
elec3647

Ad essere onesti, non l'ho mai provato prima (mai necessario), tuttavia, ho appena provato in Firefox e sembra funzionare per il salvataggio:

  1. Fare clic sull'icona del certificato SSL nella parte superiore/Lucchetto in basso.
  2. Fai clic su View Certificate
  3. Fare clic sulla scheda Details
  4. Scegli quale certificato desideri dalla gerarchia [non cerchiato nella foto]
  5. Fai clic su Export

alt text

121
William Hilsum

Esportazione di un certificato utilizzando il browser Chrome

  1. Connettiti al sito web usando SSL ( https: // qualunque )

2. Fare clic sul simbolo del lucchetto e quindi fare clic su Dettagli

  1. Dalla versione 56 di Chrome, fai quanto segue: vai al menu Three Dots -> Altri strumenti -> Strumenti per sviluppatori, quindi fai clic sulla scheda Sicurezza. Ciò fornirà un Panoramica sicurezza con un pulsante Visualizza certificato.

  2. Fare clic sul pulsante Visualizza certificato.

    Si aprirà una finestra modale. Ha due riquadri. Quello in alto mostra la gerarchia di trust del certificato del sito (l'ultimo elencato), i certificati intermedi e il certificato di root (quello più alto).

    Il secondo riquadro, più grande, mostra i dettagli di uno dei certificati.

    Ci possono essere zero o più certificati intermedi.

    Si noti che il certificato di origine ha un'icona con bordo dorato. Gli altri hanno un bordo blu.

    Guarda la schermata qui sotto.

  3. Per esportare un certificato:

    1. Innanzitutto fai clic sull'icona del certificato nella gerarchia di trust.
    2. Il certificato verrà mostrato nella parte principale del modal.
    3. Fare clic sull'icona grande del certificato nella parte principale del modal. Trascina l'icona sul desktop. Chrome copia quindi il certificato sul desktop.

 enter image description here

47
Larry K

Questa è risposta di gbroiles , ma volevo sottolineare che il progetto cURL ha una pagina con qualche dettaglio in più sull'uso di openssl per salvare il certificato SSL del server remoto:

  • openssl s_client -connect {HOSTNAME}: {PORT} | tee logfile
  • Immettere QUIT e premere il tasto Invio/Invio.
  • Il certificato verrà elencato tra i marcatori "BEGIN CERTIFICATE" e "END CERTIFICATE".
  • Se vuoi vedere i dati nel certificato, puoi usare:

    openssl x509 -informa PEM -in certfile -text -out certdata

    dove certfile è il certificato estratto da logfile. Guarda in certdata.

19
Daniel Trebbien

automatizzato

-è stato richiesto il nome utente per ottenere il certificato corretto dall'host virtuale sul nostro server.

openssl s_client -showcerts -connect Host.name.com:443 -servername Host.name.com </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > Host.name.com.pem

puoi anche convertire in un certificato per desktop

openssl x509 -inform PEM -in Host.name.com.pem -outform DER -out Host.name.com.cer

l'ultima parte è quella di aggiungerlo al tuo certs, non sicuro su Windows
per il portachiavi mac che ho usato, dovrebbe essere simile ...

Sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain Host.name.com.cer

15
Artistan

Questo darà solo i risultati contenenti i certificati

echo QUIT | \
openssl s_client -showcerts -connect hostname:port | \
awk '/-----BEGIN CERTIFICATE-----/ {p=1}; p; /-----END CERTIFICATE-----/ {p=0}' "
1