GNU/Linux >> Znalost Linux >  >> Linux

Pomocí openssl získáte certifikát ze serveru

I když souhlasím s Ariho odpovědí (a hlasoval jsem pro ni :), potřeboval jsem udělat další krok, aby to fungovalo s Javou ve Windows (kde bylo potřeba nasadit):

openssl s_client -showcerts -connect www.example.com:443 < /dev/null | openssl x509 -outform DER > derp.der

Před přidáním openssl x509 -outform DER převodu, dostával jsem chybu od keytool ve Windows, který si stěžoval na formát certifikátu. Import souboru .der fungoval dobře.


Ukázalo se, že je zde mnohem složitější:Potřeboval jsem poskytnout mnohem více podrobností, abych to mohl spustit. Myslím, že to souvisí se skutečností, že jde o připojení, které vyžaduje ověření klienta, a hankshake potřeboval více informací, aby mohl pokračovat do fáze, kdy byly certifikáty vyhozeny.

Zde je můj pracovní příkaz:

openssl s_client -connect host:port -key our_private_key.pem -showcerts \
                 -cert our_server-signed_cert.pem

Doufejme, že je to postrčení správným směrem pro každého, kdo by si mohl vystačit s dalšími informacemi.


Jednořádkový text pro extrahování certifikátu ze vzdáleného serveru ve formátu PEM, tentokrát pomocí sed :

openssl s_client -connect www.google.com:443 2>/dev/null </dev/null |  sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'

Se SNI

Pokud vzdálený server používá SNI (to znamená sdílení více hostitelů SSL na jedné IP adrese), budete muset odeslat správný název hostitele, abyste získali správný certifikát.

openssl s_client -showcerts -servername www.example.com -connect www.example.com:443 </dev/null

Bez SNI

Pokud vzdálený server nepoužívá SNI, můžete -servername přeskočit parametr:

openssl s_client -showcerts -connect www.example.com:443 </dev/null


Chcete-li zobrazit všechny podrobnosti o certifikátu webu, můžete také použít tento řetězec příkazů:

$ echo | \
    openssl s_client -servername www.example.com -connect www.example.com:443 2>/dev/null | \
    openssl x509 -text

Linux
  1. Let’s Encrypt:Získejte bezplatný certifikát SSL pomocí Certbotu

  2. Použití Redditu z konzole v roce 2020

  3. Migrace linuxového serveru z příkazového řádku

  1. Jak získat počet CPU v Linuxu pomocí C?

  2. Jak stáhnout soubor ze serveru pomocí SSH?

  3. Jak změnit kódování, které používá můj SFTP server?

  1. Použití Stratisu ke správě linuxového úložiště z příkazového řádku

  2. Chyba OpenCA Nelze načíst certifikát z databáze

  3. Použití protokolů serveru