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
- Podstawy OpenSSL w wierszu poleceń
- Tworzenie i zarządzanie łańcuchami certyfikatów
- OCSP Stapling i Certificate Transparency
- Automatyzacja Let's Encrypt i protokołu ACME