0Pricing
Cryptology Academy · Lekcja

Podstawy OpenSSL w wierszu poleceń

Proszę opanować najważniejsze polecenia OpenSSL służące do generowania kluczy, szyfrowania, haszowania i inspekcji certyfikatów.

Podstawy OpenSSL w wierszu poleceń to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Wersja OpenSSL i informacje o kompilacji

Polecenie "openssl version -a" wyświetla wersję OpenSSL, datę kompilacji, kompilator i skonfigurowane opcje. Weryfikacja wersji jest ważna, ponieważ możliwości kryptograficzne i ustawienia domyślne znacznie różnią się między OpenSSL 1.0.x, 1.1.x i 3.x. W nowszych wersjach wiele starszych algorytmów jest domyślnie wyłączonych ze względów bezpieczeństwa.

Generowanie kluczy RSA

Polecenie "openssl genrsa -out private.pem 4096" generuje 4096-bitowy klucz prywatny RSA w formacie PEM. W zastosowaniach produkcyjnych 2048 bitów to minimum, 3072 bity zapewniają około 128-bitowy poziom bezpieczeństwa, a 4096 bitów zapewnia dodatkowy zapas. Klucze można szyfrować algorytmem AES podczas przechowywania, dodając do polecenia opcję "-aes256", co spowoduje wyświetlenie prośby o podanie hasła.

Generowanie kluczy EC

Klucze krzywych eliptycznych generuje się w dwóch krokach. Najpierw polecenie "openssl ecparam -name prime256v1 -genkey -noout -out ec_private.pem" generuje klucz prywatny EC z użyciem krzywej P-256. Alternatywnie można użyć polecenia "openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-384 -out ec_private.pem", korzystając z nowszego interfejsu genpkey, który jest preferowany w nowym kodzie.

Wyświetlanie szczegółów klucza

Zawartość kluczy RSA można wyświetlić za pomocą polecenia "openssl rsa -text -noout -in private.pem", które pokazuje moduł, wykładnik publiczny i czynniki pierwsze. W przypadku kluczy EC polecenie "openssl ec -text -noout -in ec_private.pem" pokazuje nazwę krzywej i wartość klucza. Flaga "-noout" pomija dane wyjściowe zakodowane w formacie PEM.

Generowanie losowych danych

OpenSSL może generować kryptograficznie bezpieczne losowe bajty: polecenie "openssl rand -hex 32" wyświetla 32 losowe bajty w postaci szesnastkowej (64 znaki szesnastkowe), odpowiednie do generowania kluczy symetrycznych lub wartości nonce. Polecenie "openssl rand -base64 32" wyświetla losowe bajty zakodowane w formacie base64. Wykorzystuje ono źródło entropii systemu operacyjnego (/dev/urandom w systemach Unix).

Obliczanie hashy

Polecenie "openssl dgst" oblicza skróty wiadomości: "openssl dgst -sha256 file.txt" oblicza hash SHA-256 pliku. "openssl dgst -sha256 -hmac key file.txt" oblicza HMAC-SHA256. "openssl dgst -sha256 -sign private.pem -out sig.bin file.txt" tworzy podpis cyfrowy pliku.

Szyfrowanie plików

Do symetrycznego szyfrowania plików służy polecenie "openssl enc -aes-256-cbc -pbkdf2 -in plaintext.txt -out encrypted.bin". Flaga "-pbkdf2" używa PBKDF2 do wyprowadzania klucza z hasła, zastępując przestarzały mechanizm EVP_BytesToKey. Odszyfrowywanie: "openssl enc -d -aes-256-cbc -pbkdf2 -in encrypted.bin -out decrypted.txt". W nowym kodzie zaleca się używanie trybów AEAD, takich jak AES-256-GCM.

Konwersja formatów PEM i DER

Certyfikaty i klucze występują w dwóch formatach kodowania. PEM jest kodowaniem base64 z wierszami nagłówka i stopki (-----BEGIN CERTIFICATE-----), używanym przez większość narzędzi uniksowych. DER to kodowanie binarne, używane w środowiskach Java i Windows. Konwersja PEM do DER: "openssl x509 -inform PEM -outform DER -in cert.pem -out cert.der". Aby przekonwertować DER do PEM, należy odwrócić flagi -inform/-outform.

Weryfikowanie podpisów

Weryfikowanie podpisu cyfrowego: "openssl dgst -sha256 -verify public.pem -signature sig.bin file.txt". Najpierw należy wyodrębnić klucz publiczny: "openssl rsa -pubout -in private.pem -out public.pem". Weryfikacja na podstawie certyfikatu: "openssl verify -CAfile ca.pem cert.pem" sprawdza certyfikat względem określonego łańcucha CA.

Sprawdzanie szczegółów certyfikatu

Inspekcja certyfikatu jest jednym z najczęstszych zastosowań OpenSSL: "openssl x509 -text -noout -in cert.pem" wyświetla wszystkie pola certyfikatu, w tym podmiot, wystawcę, daty ważności, SAN-y i rozszerzenia. "openssl x509 -enddate -noout -in cert.pem" wyświetla tylko datę wygaśnięcia, co jest przydatne w skryptach monitorujących.

Łączenie z serwerami TLS

"openssl s_client -connect example.com:443 -servername example.com" nawiązuje połączenie TLS i wyświetla łańcuch certyfikatów serwera, wynegocjowaną wersję TLS oraz zestaw szyfrów. Dodanie "-showcerts" powoduje wyświetlenie wszystkich certyfikatów w łańcuchu. Jest to nieocenione podczas diagnozowania problemów z łańcuchem certyfikatów, wersją TLS i mechanizmem OCSP stapling.

Sprawdzenie polecenia OpenSSL genrsa

Co robi polecenie "openssl genrsa -aes256 -out private.pem 2048"?

Podsumowanie lekcji: podstawy interfejsu wiersza poleceń OpenSSL

OpenSSL udostępnia polecenia do generowania kluczy (genrsa, genpkey), konwersji formatów (PEM/DER), generowania danych losowych (rand), tworzenia hashy i podpisów (dgst), szyfrowania plików (enc), inspekcji certyfikatów (x509 -text), weryfikowania łańcuchów (verify) oraz debugowania TLS (s_client). Obejmują one zdecydowaną większość codziennych zadań związanych z certyfikatami i kryptografią.

Często zadawane pytania

Czy lekcja „Podstawy OpenSSL w wierszu poleceń” jest bezpłatna?

Tak — pełny tekst „Podstawy OpenSSL w wierszu poleceń” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Podstawy OpenSSL w wierszu poleceń”?

Proszę opanować najważniejsze polecenia OpenSSL służące do generowania kluczy, szyfrowania, haszowania i inspekcji certyfikatów. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Podstawy OpenSSL w wierszu poleceń”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?

Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy OpenSSL w wierszu poleceń
  2. Tworzenie i zarządzanie łańcuchami certyfikatów
  3. OCSP Stapling i Certificate Transparency
  4. Automatyzacja Let's Encrypt i protokołu ACME
← Powrót do Cryptology Academy