OPENSSL(1ssl) OpenSSL OPENSSL(1ssl) NAZWA openssl - program wiersza polecen do biblioteki OpenSSL SKLADNIA openssl polecenie [ opcje ... ] [ parametry ... ] openssl no-XXX [ opcje ] openssl -help | -version OPIS OpenSSL to zestaw narzedzi kryptograficznych implementujacy protokoly sieciowe Secure Sockets Layer (SSL) i Transport Layer Security (TLS) oraz wymagane przez nie standardy kryptograficzne. The openssl program is a command line program for using the various cryptography functions of OpenSSL's crypto library from the shell. It can be used for o Tworzenia i zarzadzania kluczami prywatnymi, publicznymi i ich parametrami o Operacji kryptograficznych na kluczach publicznych o Wystawiania certyfikatow X.509, CSR oraz CRL o Obliczania skrotow wiadomosci i kodow uwierzytelniania wiadomosci o Szyfrowania i deszyfrowania o Testowania klientow i serwerow SSL/TLS o Obslugi poczty z podpisem S/MIME lub zaszyfrowanej o Generowania i weryfikowania zadan znacznikow czasowych PODSUMOWANIE POLECEN Program openssl dostarcza wielu roznych polecen (polecenie w rozdziale ,,SKLADNIA" powyzej). Kazde ma mnostwo opcji i argumentow, pokazanych powyzej jako opcje i parametry. Dostepna jest szczegolowa dokumentacja i przyklady uzycia dla najpopularniejszych podpolecen (np. openssl-x509(1)). Podpoleceniem openssl-list(1) mozna wypisac liste podpolecen. Polecenie no-XXX sprawdza obecnosc polecenia o podanej nazwie. Jesli XXX nie jest dostepne, zwraca 0 (kod powodzenia) i wypisuje no-XXX; w przeciwnym razie zwraca 1 i wypisuje XXX. W obydwu przypadkach efekty sa kierowane na standardowe wyjscie i nic nie pojawia sie na standardowym wyjsciu bledow. Dodatkowe argumenty wiersza polecen sa zawsze ignorowane. Poniewaz kazdy szyfr jest wywolywany przez polecenie o takiej samej nazwie jak on sam, latwo sprawdzic dostepnosc szyfrow w openssl z poziomu powloki. (no-XXX nie potrafi wykrywac pseudopolecen takich jak quit, list, czy samego no-XXX). Opcje konfiguracyjne Wiele polecen korzysta z zewnetrznego pliku konfiguracyjnego do kilku lub wszystkich argumentow i moze posiadac opcje -config okreslajaca taki plik. Domyslna nazwa pliku jest openssl.cnf w domyslnym miejscu przechowywania certyfikatow, ktory mozna sprawdzic poleceniem openssl-version(1) z opcja -d lub -a. Zmienna srodowiskowa OPENSSL_CONF moze posluzyc do okreslenia innego polozenia pliku lub wylaczenia ladowania konfiguracji (podajac pusty lancuch). Plik konfiguracyjny moze byc uzywany miedzy innymi do ladowania modulow i okreslania parametrow do generowania certyfikatow oraz liczb losowych. Wiecej szczegolow w podreczniku config(5). Polecenia standardowe asn1parse Analiza skladni sekwencji ANS.1. ca Zarzadzanie osrodkami certyfikacji (CA). ciphers Opis zestawu dostepnych szyfrow. cms Polecenie CMS (Cryptographic Message Syntax). crl Zarzadzanie lista uniewaznionych certyfikatow (CRL). crl2pkcs7 Konwersja z CRL do PKCS#7. dgst Obliczanie skrotu wiadomosci. Skroty wiadomosci zostaly zastapione przez openssl-mac(1). dhparam Tworzenie i zarzadzanie parametrami Diffiego-Hellmana. Zastapione przez genpkey(1) i pkeyparam(1). dsa Zarzadzanie danymi DSA. dsaparam Tworzenie i zmienianie DSA. Zastapione przez openssl-genpkey(1) i openssl-pkeyparam(1). ec Przetwarzanie klucza EC (Elliptic curve - krzywych eliptycznych). ecparam Tworzenie i zmienianie parametrow EC. enc Szyfrowanie, odszyfrowywanie i kodowanie. engine Informacja o silnikach (modulach ladowalnych) i zarzadzanie nimi. errstr Konwersja numeru bledu na komunikat bledu. fipsinstall Instalacja konfiguracji FIPS. gendsa Tworzenie prywatnego klucza DSA na podstawie parametrow. Zastapione openssl-genpkey(1) i openssl-pkey(1). genpkey Tworzenie kluczy prywatnych lub parametrow. genrsa Tworzenie klucza prywatnego RSA. Zastapione przez openssl-genpkey(1). help Display information about a command's options. info Wyswietlenie roznych informacji wbudowanych w biblioteki OpenSSL. kdf Key Derivation Functions - funkcje wyprowadzania klucza. list Wypisanie algorytmow i funkcji. mac Obliczanie Message Authentication Code - kodu uwierzytelniania wiadomosci. nseq Tworzenie lub sprawdzanie sekwencji certyfikatow Netscape. ocsp Polecenie protokolu stanu certyfikatu. passwd Generowanie skrotu hasla. pkcs12 Zarzadzanie danymi w formacie PKCS#12. pkcs7 Zarzadzanie danymi w formacie PKCS#7. pkcs8 Polecenie konwersji klucza prywatnego w formacie PKCS#8. pkey Zarzadzanie kluczami publicznymi i prywatnymi pkeyparam Zarzadzanie parametrami algorytmu klucza publicznego. pkeyutl Polecenie operacji algorytmu kryptograficznego klucza publicznego. prime Obliczanie liczb pierwszych. rand Tworzenie pseudolosowych bajtow. rehash Tworzenie dowiazan symbolicznych do certyfikatow i plikow CRL nazwanych wedlug wartosci skrotu. req Zarzadzanie zadaniami podpisu certyfikatu PKCS#10 X.509 (CSR). rsa Zarzadzanie kluczem RSA. rsautl Polecenie do podpisywania, weryfikowania, szyfrowania i deszyfrowania RSA. Zastapione przez openssl-pkeyutl(1). s_client This implements a generic SSL/TLS client which can establish a transparent connection to a remote server speaking SSL/TLS. It's intended for testing purposes only and provides only rudimentary interface functionality but internally uses mostly all functionality of the OpenSSL ssl library. s_server This implements a generic SSL/TLS server which accepts connections from remote clients speaking SSL/TLS. It's intended for testing purposes only and provides only rudimentary interface functionality but internally uses mostly all functionality of the OpenSSL ssl library. It provides both an own command line oriented protocol for testing SSL functions and a simple HTTP response facility to emulate an SSL/TLS-aware webserver. s_time Licznik czasu polaczenia SSL. sess_id Zarzadzanie danymi sesji SSL. smime Przetwarzanie poczty S/MIME. speed Mierzenie szybkosci algorytmu. spkac Polecenie wypisywania i generowania SPKAC. srp Zarzadzanie plikiem hasel SRP. To polecenie jest przestarzale. storeutl Polecenie do wypisywania i wyswietlania certyfikatow, kluczy, CRL-i itp. ts Polecenie Time Stamping Authority. verify Weryfikacja certyfikatu X.509. Zob. tez podrecznik openssl-verification-options(1). version Informacja o wersji OpenSSL. x509 Zarzadzanie certyfikatami X.509. Polecenia skrotu wiadomosci blake2b512 Skrot BLAKE2b-512 blake2s256 Skrot BLAKE2s-256 md2 Skrot MD2 md4 Skrot MD4 md5 Skrot MD5 mdc2 Skrot MDC2 rmd160 Skrot RMD-160 sha1 Skrot SHA-1 sha224 Skrot SHA-2 224 sha256 Skrot SHA-2 256 sha384 Skrot SHA-2 384 sha512 Skrot SHA-2 512 sha3-224 Skrot SHA-3 224 sha3-256 Skrot SHA-3 256 sha3-384 Skrot SHA-3 384 sha3-512 Skrot SHA-3 512 keccak-224 Skrot KECCAK 224 keccak-256 Skrot KECCAK 256 keccak-384 Skrot KECCAK 384 keccak-512 Skrot KECCAK 512 shake128 Skrot SHA-3 SHAKE128 shake256 Skrot SHA-3 SHAKE256 sm3 Skrot SM3 Polecenia szyfrowania, odszyfrowywania i kodowania Ponizsze aliasy zapewniaja wygodny dostep do najpopularniejszych kodowan i szyfrow. W zaleznosci od sposobu skonfigurowania i zbudowania OpenSSL, nie wszystkie ponizsze szyfry moga byc obecne. Wiecej informacji w podreczniku openssl-enc(1). aes128, aes-128-cbc, aes-128-cfb, aes-128-ctr, aes-128-ecb, aes-128-ofb Szyfr AES-128 aes192, aes-192-cbc, aes-192-cfb, aes-192-ctr, aes-192-ecb, aes-192-ofb Szyfr AES-192 aes256, aes-256-cbc, aes-256-cfb, aes-256-ctr, aes-256-ecb, aes-256-ofb Szyfr AES-256 aria128, aria-128-cbc, aria-128-cfb, aria-128-ctr, aria-128-ecb, aria-128-ofb Szyfr Aria-128 aria192, aria-192-cbc, aria-192-cfb, aria-192-ctr, aria-192-ecb, aria-192-ofb Szyfr Aria-192 aria256, aria-256-cbc, aria-256-cfb, aria-256-ctr, aria-256-ecb, aria-256-ofb Szyfr Aria-256 base64 Kodowanie Base64 bf, bf-cbc, bf-cfb, bf-ecb, bf-ofb Szyfr Blowfish camellia128, camellia-128-cbc, camellia-128-cfb, camellia-128-ctr, camellia-128-ecb, camellia-128-ofb Szyfr Camellia-128 camellia192, camellia-192-cbc, camellia-192-cfb, camellia-192-ctr, camellia-192-ecb, camellia-192-ofb Szyfr Camellia-192 camellia256, camellia-256-cbc, camellia-256-cfb, camellia-256-ctr, camellia-256-ecb, camellia-256-ofb Szyfr Camellia-256 cast, cast-cbc Szyfr CAST cast5-cbc, cast5-cfb, cast5-ecb, cast5-ofb Szyfr CAST5 chacha20 Szyfr Chacha20 des, des-cbc, des-cfb, des-ecb, des-ede, des-ede-cbc, des-ede-cfb, des-ede-ofb, des-ofb Szyfr DES des3, desx, des-ede3, des-ede3-cbc, des-ede3-cfb, des-ede3-ofb Szyfr Triple-DES idea, idea-cbc, idea-cfb, idea-ecb, idea-ofb Szyfr IDEA rc2, rc2-cbc, rc2-cfb, rc2-ecb, rc2-ofb Szyfr RC2 rc4 Szyfr RC4 rc5, rc5-cbc, rc5-cfb, rc5-ecb, rc5-ofb Szyfr RC5 seed, seed-cbc, seed-cfb, seed-ecb, seed-ofb Szyfr SEED sm4, sm4-cbc, sm4-cfb, sm4-ctr, sm4-ecb, sm4-ofb Szyfr SM4 OPCJE Dostepne opcje zaleza od konkretnego polecenia. Niniejszy rozdzial opisuje najczestsze opcje z ich standardowym zachowaniem. Opcje programu Ponizsze opcje mozna podac bez polecenia, aby uzyskac pomoc lub informacje o wersji. -help Pokazuje zwiezle podsumowanie wszystkich opcji. Wiecej szczegolowych informacji dostarczy opcja -help danego polecenia. Przyjmuje rowniez postac --help. -version Pokazuje zwiezle podsumowanie wersji programu openssl. Zob. openssl-version(1), aby uzyskac wiecej informacji. Przyjmuje rowniez postac --version. Ogolne opcje -help Jesli opcja przyjmuje argument, podany jest rowniez jego ,,typ". -- W ten sposob zamyka sie liste opcji. Najbardziej przydatne, gdy jakis parametr z nazwa pliku zaczyna sie od minusa: openssl verify [flagi...] -- -cert1.pem... Opcje formatu Zob. podrecznik openssl-format-options(1). Opcje hasla Zob. podrecznik openssl-passphrase-options(1). Opcja stanu losowosci Przed OpenSSL 1.1.1, czesta praktyka bylo przechowywanie informacji o stanie generatora liczb losowych w pliku, ktory byl ladowany przy starcie i nadpisywany przy wyjsciu. We wspolczesnych systemach operacyjnych zwykle nie jest to dluzej konieczne, poniewaz OpenSSL pobierze ziarno z zaufanego zrodla entropii, zapewnionego przez system operacyjny. Ponizsze opcje sa wciaz obslugiwane w celu obslugi specjalnych platfor lub przypadkow, ktore moga ich wymagac. Zwykle bledem jest uzywanie tego samego pliku z ziarnem wiecej niz jednokrotnie, a kazde zastosowanie -rand powinno byc polaczone z -writerand. -rand pliki Plik lub pliki z danymi losowymi uzywanymi jako ziarno do generatora liczb losowych. Mozna podac wiele plikow, rozdzielajac je separatorem zaleznym od uzywanego systemu operacyjnego. Separatorem jest: ,,;" w MS-Windows, ,,," w OpenVMS i ,,:" we wszystkich pozostalych systemach. Innym sposobem podania wielu plikow jest podanie tej opcji dla kazdego pliku z osobna. -writerand plik Zapisuje dane ziarna do podanego pliku przy wyjsciu. Pliku mozna uzyc przy kolejnym wywolaniu polecenia. Opcje weryfikacji certyfikatu Zob. podrecznik openssl-verification-options(1). Opcje formatu nazwy Zob. podrecznik openssl-namedisplay-options(1). Opcje wersji TLS Wiele polecen uzywa SSL, TLS lub DTLS. Domyslnie polecenia uzywaja TLS, a klienty informuja o najnizszej i najwyzszej obslugiwanej przez nie wersji, po czym serwery wybieraja najwyzsza wersje oferowana przez klienta, ktora obsluguje rowniez serwer. Ponizszych opcji mozna uzyc, aby ograniczyc wersje protokolu, jakich bedzie mozna uzyc oraz aby wybrac, czy bedzie stosowane TCP (SSL i TLS) czy UDP (DTLS). Prosze zauwazyc, ze nie wszystkie protokoly i opcje moga byc dostepne, w zaleznosci od sposobu, w jaki zbudowano OpenSSL. -ssl3, -tls1, -tls1_1, -tls1_2, -tls1_3, -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2, -no_tls1_3 Opcje te wymagaja lub wylaczaja korzystanie z podanych protokolow SSL lub TLS. Gdy wymagana jest okreslona wersja TLS, tylko ona zostanie zaoferowana lub zaakceptowana. Mozna podac tylko jeden protokol i nie mozna go laczyc z zadna z opcji no_. Opcje no_* nie dzialaja z poleceniami s_time i ciphers, lecz dzialaja z poleceniami s_client i s_server. -dtls, -dtls1, -dtls1_2 Opcje te nakazuja stosowanie DTLS zamiast TLS. Z -dtls, klienty beda negocjowac dowolna obslugiwana wersje protokolu DTLS. Aby obslugiwac wylacznie DTLS1.0 lub DTLS1.2, nalezy zastosowac, odpowiednio, -dtls1 lub -dtls1_2. Opcje silnika -engine id Laduje silnik o identyfikatorze id i uzywa wszystkich metod przez niego implementowanych (algorytmow, przechowywania kluczy itp.), o ile nie podano inaczej w dokumentacji danego polecenia, albo nie jest tak skonfigurowany, zgodnie z opisem ,,Konfiguracja silnika" w config(5). Silnik zostanie uzyty do identyfikatorow kluczy podanych opcja -key i podobnymi opcjami, gdy poda sie opcje taka jak -keyform engine. Specjalnym przypadkiem jest silnik ,,loader_attic", ktory jest przeznaczony do wewnetrznych testow OpenSSL i obsluguje ladowanie kluczy, parametrow, certyfikatow i CRL-i z plikow. Gdy korzysta sie z tego silnika, pliki z takimi poswiadczeniami sa odczytywane poprzez ten silnik. Korzystanie z postaci ,,file:" jest opcjonalne, wystarczy sam plik (sciezka). Opcje okreslajace klucze, takie jak -key i podobne, moga korzystac z podstawowej postaci URI ladowania kluczy silnika OpenSSL ,,org.openssl.engine:", aby pobierac klucze prywatne i publiczne. Skladnia URI jest nastepujaca, w uproszczonej postaci: org.openssl.engine:{id-silnika}:{id-klucza} Where "{engineid}" is the identity/name of the engine, and "{keyid}" is a key identifier that's acceptable by that engine. For example, when using an engine that interfaces against a PKCS#11 implementation, the generic key URI would be something like this (this happens to be an example for the PKCS#11 engine that's part of OpenSC): -key org.openssl.engine:pkcs11:label_jakis-klucz-prywatny Jako trzecia mozliwosc, silniki i dostawcy zapewniajacy swoje wlasne OSSL_STORE_LOADER(3), nie wymagaja ,,org.openssl.engine:". W przypadku implementacji PKCS#11, ktora zaimplementowala taki mechanizm ladujacy, URI PKCS#11, zgodne z definicja z RFC 7512, powinno dac sie stosowac bezposrednio: -key pkcs11:object=jakis-klucz-prywatny;pin-value=1234 Opcje dostawcy -provider nazwa Laduje i inicjuje dostawce identyfikowanego nazwa. Nazwa moze byc rowniez sciezka do modulu dostawcy. W takim przypadku, nazwa dostawcy bedzie podana sciezka, a nie sama nazwa modulu dostawcy. Interpretacja sciezek wzglednych zalezy od platformy. Skonfigurowana sciezka ,,MODULESDIR", zmienna srodowiskowa OPENSSL_MODULES lub sciezka podana przez -provider-path jest dolaczana przed sciezkami wzglednymi. Wiecej szczegolow w podreczniku provider(7). -provider-path sciezka Okresla sciezke przeszukiwania, pod ktora wyszukiwani sa dostawcy. Rownowaznie mozna ustawic zmienna srodowiskowa OPENSSL_MODULES. -provparam [nazwa:]klucz=wartosc Ustawia parametr konfiguracyjny klucz na wartosc wartosc u dostawcy nazwa (opcjonalne); jesli nie poda sie nazwy, to ustawienie zostanie zastosowane do wszystkich dostawcow. Opcje mozna podac wielokrotnie, aby ustawic wiele parametrow. Opcje okreslajace ladowanie dostawcow innych niz domyslni, powinny poprzedzac niniejsza opcje, jesli maja sie stosowac do majacych byc zaladowanych dostawcow. Parametry wplywajace tylko na inicjowanie dostawcow musza byc, obecnie, ustawione w pliku konfiguracyjnym, jedynie parametry, ktore sa odpytywane jako potrzebne pozniej, beda odnosily skutek za pomoca opisywanego interfejsu. Obslugiwane sa tylko parametry z wartosciami lancuchow UTF8. Obslugiwane parametry opisano w dokumentacji danych dostawcow i powiazanych algorytmow. -propquery klauzula Okresla klauzule zapytan o wlasciwosci do uzycia przy pobieraniu algorytmow od zaladowanych dostawcow. Wiecej informacji w podreczniku property(7) SRODOWISKO Biblioteki OpenSSL moga przyjmowac pewne parametry konfiguracyjne ze srodowiska. Informacje o wszystkich zmiennych srodowiskowych uzywanych przez biblioteki OpsnSSL, takie jak OPENSSL_CONF, OPENSSL_MODULES i OPENSSL_TRACE, znajduja sie w podreczniku openssl-env(7). Informacje o sposobach stosowania zmiennych srodowiskowych w konfiguracji, opisano w rozdziale ,,srodowisko" w podreczniku config(5). Informacje o okreslonych poleceniach opisano w podrecznikach openssl-engine(1), openssl-rehash(1) i tsget(1). Informacje o odpytywaniu lub podawaniu flag architektury procesora opisano w podrecznikach OPENSSL_ia32cap(3), OPENSSL_s390xcap(3) i OPENSSL_riscvcap(3). ZOBACZ TAKZE openssl-asn1parse(1), openssl-ca(1), openssl-ciphers(1), openssl-cms(1), openssl-crl(1), openssl-crl2pkcs7(1), openssl-dgst(1), openssl-dhparam(1), openssl-dsa(1), openssl-dsaparam(1), openssl-ec(1), openssl-ecparam(1), openssl-enc(1), openssl-engine(1), openssl-errstr(1), openssl-gendsa(1), openssl-genpkey(1), openssl-genrsa(1), openssl-kdf(1), openssl-list(1), openssl-mac(1), openssl-nseq(1), openssl-ocsp(1), openssl-passwd(1), openssl-pkcs12(1), openssl-pkcs7(1), openssl-pkcs8(1), openssl-pkey(1), openssl-pkeyparam(1), openssl-pkeyutl(1), openssl-prime(1), openssl-rand(1), openssl-rehash(1), openssl-req(1), openssl-rsa(1), openssl-rsautl(1), openssl-s_client(1), openssl-s_server(1), openssl-s_time(1), openssl-sess_id(1), openssl-smime(1), openssl-speed(1), openssl-spkac(1), openssl-srp(1), openssl-storeutl(1), openssl-ts(1), openssl-verify(1), openssl-version(1), openssl-x509(1), config(5), crypto(7), openssl-env(7). ssl(7), x509v3_config(5) HISTORIA Opcje list -XXX-algorytmy dodano w OpenSSL 1.0.0; informacje o dostepnosci innych polecen opisano w poszczegolnych podrecznikach systemowych. Opcja -issuer_checks zostala uznana za przestarzala wedlug stanu na OpenSSL 1.1.0 i jest po cichu ignorowana. Opcje -xcertform i -xkeyform sa przestarzale od OpenSSL 3.0 i nie odnosza skutku. Tryb interaktywny, ktory mozna bylo przywolac uruchamiajac ,,openssl" bez zadnych argumentow, usunieto w OpenSSL 3.0; obecnie uruchomienie programu bez argumentow odpowiada podaniu ,,openssl help". PRAWA AUTORSKIE Copyright 2000-2025 The OpenSSL Project Authors. Wszystkie prawa zastrzezone. Licencjonowane na warunkach licencji Apache License 2.0 (,,Licencja") Korzystanie dozwolone tylko w zgodzie z Licencja. Jej kopia jest dostepna w pliku LICENSE w zrodlach lub na stronie . TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Daniel Koc , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . 3.5.2 5 sierpnia 2025 r. OPENSSL(1ssl)