21 przykładów OpenSSL, które pomogą Ci w prawdziwym świecie

Twórz, zarządzaj i konwertuj certyfikaty SSL za pomocą OpenSSL

Jednym z najpopularniejszych poleceń SSL do tworzenia, konwertowania i zarządzania certyfikatami SSL jest OpenSSL.

Będzie wiele sytuacji, w których będziesz musiał radzić sobie z OpenSSL na różne sposoby, a tutaj wymieniłem je dla Ciebie jako podręczną ściągawkę.

W tym artykule omówię często używane polecenia OpenSSL, które pomogą ci w prawdziwym świecie.

Niektóre skróty związane z certyfikatami.

  • SSL — warstwa bezpiecznego gniazda
  • CSR – Żądanie podpisania certyfikatu
  • TLS — bezpieczeństwo warstwy transportowej
  • PEM – Poczta o zwiększonej prywatności
  • DER – Wybitne reguły kodowania
  • SHA – Bezpieczny algorytm mieszania
  • PKCS – standardy kryptografii klucza publicznego

Notatka: Kurs obsługi SSL/TLS byłoby pomocne, jeśli nie znasz warunków.

Utwórz nowe żądanie podpisania klucza prywatnego i certyfikatu

openssl req -out newsblog.pl.csr -newkey rsa:2048 -nodes -keyout newsblog.pl.key

Powyższe polecenie wygeneruje CSR i 2048-bitowy plik klucza RSA. Jeśli zamierzasz używać tego certyfikatu w Apache lub Nginx, musisz wysłać ten plik CSR do urzędu wydawcy certyfikatu, a otrzymasz podpisany certyfikat głównie w formacie der lub pem, który musisz skonfigurować na serwerze WWW Apache lub Nginx .

Utwórz certyfikat z podpisem własnym

openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Powyższe polecenie wygeneruje samopodpisany certyfikat i plik klucza z 2048-bitowym RSA. Uwzględniłem również sha256, ponieważ jest obecnie uważany za najbezpieczniejszy.

Wskazówka: domyślnie wygeneruje samopodpisany certyfikat ważny tylko przez jeden miesiąc, więc możesz rozważyć zdefiniowanie parametru –days, aby przedłużyć ważność.

Np.: posiadanie autopodpisu ważnego przez dwa lata.

openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Sprawdź plik CSR

openssl req -noout -text -in newsblog.pl.csr

Weryfikacja jest niezbędna, aby upewnić się, że wysyłasz CSR do organu emitującego z wymaganymi szczegółami.

Utwórz klucz prywatny RSA

openssl genrsa -out private.key 2048

Jeśli potrzebujesz tylko wygenerować klucz prywatny RSA, możesz użyć powyższego polecenia. Włączyłem 2048 dla silniejszego szyfrowania.

Usuń hasło z klucza

openssl rsa -in certkey.key -out nopassphrase.key

Jeśli używasz hasła w pliku klucza i używasz Apache, to za każdym razem, gdy zaczynasz, musisz wprowadzić hasło. Jeśli denerwuje Cię wprowadzanie hasła, możesz użyć powyższego openssl rsa -in newsblog.pl.key -check, aby usunąć klucz hasła z istniejącego klucza.

Zweryfikuj klucz prywatny

openssl rsa -in certkey.key –check

Jeśli masz wątpliwości co do pliku klucza, możesz użyć powyższego polecenia, aby to sprawdzić.

Sprawdź plik certyfikatu

openssl x509 -in certfile.pem -text –noout

Jeśli chcesz zweryfikować dane certyfikatu, takie jak CN, OU itp., Możesz użyć powyższego polecenia, które poda szczegóły certyfikatu.

Sprawdź urząd podpisujący certyfikat

openssl x509 -in certfile.pem -noout -issuer -issuer_hash

Organ wydający certyfikaty podpisuje każdy certyfikat i na wypadek konieczności ich sprawdzenia.

Sprawdź wartość skrótu certyfikatu

openssl x509 -noout -hash -in bestflare.pem

Konwertuj DER na format PEM

openssl x509 –inform der –in sslcert.der –out sslcert.pem

Zwykle urząd certyfikacji da ci certyfikat SSL w formacie .der, a jeśli potrzebujesz ich użyć w formacie apache lub .pem, powyższe polecenie ci pomoże.

Konwersja PEM do formatu DER

openssl x509 –outform der –in sslcert.pem –out sslcert.der

W przypadku konieczności zmiany formatu .pem na .der

Konwertuj certyfikat i klucz prywatny na format PKCS#12

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem

Jeśli potrzebujesz użyć certyfikatu z aplikacją java lub inną, która akceptuje tylko format PKCS#12, możesz użyć powyższego polecenia, które wygeneruje pojedynczy pfx zawierający plik certyfikatu i klucza.

Wskazówka: możesz również dołączyć certyfikat łańcucha, przekazując –chain jak poniżej.

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem

Utwórz CSR przy użyciu istniejącego klucza prywatnego

openssl req –out certificate.csr –key existing.key –new

Jeśli nie chcesz tworzyć nowego klucza prywatnego zamiast używać istniejącego, możesz skorzystać z powyższego polecenia.

Sprawdź zawartość certyfikatu formatu PKCS12

openssl pkcs12 –info –nodes –in cert.p12

PKCS12 jest formatem binarnym, więc nie będziesz mógł przeglądać zawartości w notatniku lub innym edytorze. Powyższe polecenie pomoże ci zobaczyć zawartość pliku PKCS12.

Konwertuj format PKCS12 na certyfikat PEM

openssl pkcs12 –in cert.p12 –out cert.pem

Jeśli chcesz używać istniejącego formatu pkcs12 z Apache lub tylko w formacie pem, będzie to przydatne.

Przetestuj certyfikat SSL dla określonego adresu URL

openssl s_client -connect yoururl.com:443 –showcerts

Używam tego dość często do sprawdzania poprawności certyfikatu SSL określonego adresu URL z serwera. Jest to bardzo przydatne do sprawdzania poprawności protokołu, szyfru i szczegółów certyfikatu.

Sprawdź wersję OpenSSL

openssl version

Jeśli jesteś odpowiedzialny za zapewnienie bezpieczeństwa OpenSSL, prawdopodobnie jedną z pierwszych rzeczy, które musisz zrobić, jest zweryfikowanie wersji.

Sprawdź datę wygaśnięcia certyfikatu pliku PEM

openssl x509 -noout -in certificate.pem -dates

Przydatne, jeśli planujesz umieścić monitoring, aby sprawdzić ważność. Pokaże ci datę w składni notBefore i notAfter. notAfter to jeden, który będziesz musiał zweryfikować, aby potwierdzić, czy certyfikat wygasł lub jest nadal ważny.

Były:

[[email protected] opt]# openssl x509 -noout -in bestflare.pem -dates
notBefore=Jul 4 14:02:45 2015 GMT
notAfter=Aug 4 09:46:42 2015 GMT
[[email protected] opt]#

Sprawdź datę wygaśnięcia certyfikatu SSL URL

openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate

Kolejna przydatna, jeśli planujesz zdalnie monitorować datę wygaśnięcia certyfikatu SSL lub określony adres URL.

Były:

[[email protected] opt]# openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate

notAfter=Dec 8 00:00:00 2015 GMT

Sprawdź, czy adres URL akceptuje protokół SSL V2 lub V3

Aby sprawdzić protokół SSL V2

openssl s_client -connect secureurl.com:443 -ssl2

Aby sprawdzić protokół SSL V3

openssl s_client -connect secureurl.com:443 –ssl3

Aby sprawdzić TLS 1.0

openssl s_client -connect secureurl.com:443 –tls1

Aby sprawdzić TLS 1.1

openssl s_client -connect secureurl.com:443 –tls1_1

Aby sprawdzić TLS 1.2

openssl s_client -connect secureurl.com:443 –tls1_2

Jeśli zabezpieczasz serwer WWW i chcesz sprawdzić, czy protokół SSL V2/V3 jest włączony, czy nie, możesz użyć powyższego polecenia. Jeśli zostanie aktywowany, otrzymasz „POŁĄCZONY”, w przeciwnym razie „niepowodzenie uzgadniania”.

Sprawdź, czy dany szyfr jest akceptowany w adresie URL

openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443

Jeśli pracujesz nad ustaleniami dotyczącymi bezpieczeństwa, a wyniki testu pióra pokazują, że niektóre słabe szyfry są akceptowane, możesz użyć powyższego polecenia, aby sprawdzić poprawność.

Oczywiście będziesz musiał zmienić szyfr i adres URL, z którym chcesz przetestować. Jeśli wspomniany szyfr zostanie zaakceptowany, otrzymasz „CONNECTED”, w przeciwnym razie „niepowodzenie uzgadniania”.

Mam nadzieję, że powyższe polecenia pomogą Ci dowiedzieć się więcej o OpenSSL do zarządzania certyfikatami SSL dla Twojej witryny.