2010-01-18 07:43:44 +0000 2010-01-18 07:43:44 +0000
342
342

Jak zapisać certyfikat SSL zdalnego serwera lokalnie jako plik

Muszę pobrać certyfikat SSL zdalnego serwera (nie HTTPS, ale uścisk dłoni SSL powinien być taki sam jak Google Chrome / IE / wget i curl wszystkie dają certyfikat sprawdzić błędy fail) i dodać certyfikat jako zaufany w sklepie z certyfikatami moich laptopów Windows, ponieważ nie jestem w stanie uzyskać moich informatyków, aby dać mi certyfikat CA.

Jak to zrobić, mam Windows 7 i stos linuxów pod ręką, więc każde narzędzie / język skryptowy jest w porządku.

Odpowiedzi (8)

333
333
333
2010-08-17 07:20:51 +0000

Jeśli masz dostęp do OpenSSL, spróbuj

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

zastępując {HOSTNAME} i {PORT} dowolnymi wartościami.

264
264
264
2013-09-05 13:47:29 +0000

Szybkim sposobem na ściągnięcie i pobranie certyfikatu byłoby uruchomienie następującej komendy, która przenosi wyjście z -showcerts do komendy x509 ssl, która po prostu usuwa wszystko, co obce. Na przykład:

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

Aby użyć certyfikatu, z wgetem,

wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem
128
128
128
2010-01-18 07:56:49 +0000

Szczerze mówiąc, nigdy wcześniej tego nie próbowałem (nigdy nie musiałem), ale właśnie próbowałem w Firefoksie i wydaje się, że to działa na oszczędność:

  1. Kliknij na ikonę certyfikatu SSL na górze / Kłódka na dole.
  2. Kliknij na View Certificate
  3. Kliknij na zakładkę Details
  4. Wybierz certyfikat, który chcesz z hierarchii [nie zakreślony na zdjęciu]
  5. Kliknij Export

52
52
52
2016-12-26 18:45:38 +0000

Wyeksportowanie certyfikatu za pomocą przeglądarki Chrome

  1. Połącz się ze stroną używając SSL https://whatever )

2. Kliknij na symbol kłódki, a następnie na Details

  1. Od wersji 56 Chrome wykonujesz następujące czynności: przejdź do menu Trzy punkty -> Więcej narzędzi -> Narzędzia programistyczne, a następnie kliknij na zakładkę Zabezpieczenia. W ten sposób uzyskasz Przegląd zabezpieczeń z przyciskiem Przeglądanie certyfikatu.

  2. Kliknij na przycisk Wyświetl certyfikat.

  3. Aby wyeksportować certyfikat:

20
20
20
2012-10-18 22:10:10 +0000

Jest to odpowiedź gbroiles’ answer , ale chciałem zaznaczyć, że projekt cURL ma stronę z kilkoma szczegółami na użycie openssl do zapisania certyfikatu SSL zdalnego serwera:

  • openssl s\_client -connect {HOSTNAME}:{PORT} | tee logfile
  • Type QUIT i naciśnij klawisz Enter / Return.
  • Certyfikat zostanie umieszczony na liście pomiędzy znacznikami “BEGIN CERTIFICATE” i “END CERTIFICATE”.
  • Jeśli chcesz zobaczyć dane w certyfikacie, możesz go użyć:
16
16
16
2018-01-25 15:59:26 +0000

automated

-servername was required for me to get the right cert from the virtual host on our 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

można również przekonwertować na certyfikat dla desktopu

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

ostatnia część to dodanie go do swojego certyfikatu, nie jestem pewien czy na windows dla Mac keychain, którego użyłem, powinien być podobny…

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

2
2
2
2017-05-23 01:20:39 +0000

To da wyniki zawierające tylko certyfikaty

echo QUIT | \
openssl s_client -showcerts -connect hostname:port | \
awk '/-----BEGIN CERTIFICATE-----/ {p=1}; p; /-----END CERTIFICATE-----/ {p=0}' "
0
0
0
2019-05-03 13:19:15 +0000

Znalazłem o wiele łatwiejszy sposób, jeśli w Windows. Wypróbowałeś Microsoft Edge (prechromowy) i kliknąłeś na blokadę w pasku adresu -> Zobacz okno dialogowe certyfikatu wyskakuje z przyciskiem “Eksportuj do pliku”, który zapisuje go jako plik .crt.

Niewiele bym użył Edge'a, ale to był kawałek tortu.