Generator kluczy RSA
Wygeneruj nową parę kluczy RSA z modułem 2048 lub 3072 bitów i wykładnikiem publicznym 65537. Otrzymasz niezaszyfrowany klucz prywatny PEM w formacie PKCS #8, klucz publiczny PEM w formacie SPKI, odpowiadający im wiersz OpenSSH ssh-rsa z odciskiem SHA-256, algorytmy RS i PS, którymi można podpisywać, oraz odcisk JWK RFC 7638 do użycia jako identyfikator klucza. Każda para jest tworzona na potrzeby tego żądania za pomocą modułu crypto Node i nigdy nie jest zapisywana.
Najczęściej zadawane pytania
Wybrać 2048 czy 3072 bitów?
RSA o długości 2048 bitów to nadal powszechne minimum, akceptowane wszędzie, także przez biblioteki JWT odrzucające krótsze klucze. 3072 bitów odpowiada poziomowi bezpieczeństwa 128 bitów zalecanemu przez NIST SP 800-57 dla okresu po 2030, kosztem większych podpisów i wolniejszego podpisywania. Większe rozmiary, takie jak 4096 bitów, nie są oferowane, ponieważ czas ich generowania na współdzielonym serwerze jest nieprzewidywalny.
Jakich formatów używa wynik?
Klucz prywatny jest zakodowany w PEM jako PKCS #8 (BEGIN PRIVATE KEY), a klucz publiczny w PEM jako SubjectPublicKeyInfo (BEGIN PUBLIC KEY). Oba formaty obsługują OpenSSL, Java, .NET, Go, Node, jose i większość innych bibliotek. Wiersz klucza publicznego OpenSSH jest dodawany na potrzeby plików authorized_keys.
Czy klucz prywatny jest szyfrowany?
Nie, klucz prywatny jest zwracany bez hasła, dzięki czemu można go od razu wkleić do innych narzędzi. Aby zabezpieczyć go w spoczynku, uruchom openssl pkey -in key.pem -aes256 -out key-encrypted.pem i przechowuj tylko zaszyfrowany plik. Nie umieszczaj niezaszyfrowanej kopii w systemie kontroli wersji.
Jak uzyskać format PKCS #1 (BEGIN RSA PRIVATE KEY)?
Niektóre starsze programy wymagają tradycyjnego formatu PKCS #1. W OpenSSL 3 uruchom openssl pkey -in key.pem -traditional -out key-rsa.pem, aby przekonwertować plik PKCS #8. Materiał klucza pozostaje taki sam, zmienia się tylko jego opakowanie.
Czy mogę użyć tego klucza do SSH?
Tak. Umieść wiersz ssh-rsa w pliku ~/.ssh/authorized_keys na serwerze i zapisz prywatny klucz PEM jako plik tożsamości z uprawnieniami 600, ponieważ OpenSSH odczytuje klucze RSA zakodowane w PEM. Wiele serwerów preferuje obecnie klucze Ed25519, które tworzy Generator kluczy Ed25519.
Czym jest odcisk JWK?
To skrót SHA-256 RFC 7638 z wymaganych elementów JWK klucza publicznego, zakodowany w base64url. Identyfikuje klucz niezależnie od jego formatu, dzięki czemu dobrze nadaje się na wartość kid w tokenach JWT i dokumentach JWKS. Konwerter JWK wyświetla tę samą wartość dla tego klucza.
Którymi algorytmami JWT można podpisywać tym kluczem?
Kluczem RSA można podpisywać za pomocą RS256, RS384 i RS512 (PKCS #1 v1.5) oraz PS256, PS384 i PS512 (RSA-PSS). Użyj prywatnego klucza PEM w Generatorze JWT, a weryfikatorom przekaż publiczny klucz PEM lub jego JWK. Algorytm jest właściwością podpisu, więc jeden klucz może służyć do kilku algorytmów.
Czy wygenerowany klucz jest gdzieś przechowywany?
Nie. Para kluczy jest tworzona w pamięci na potrzeby Twojego żądania, zwracana raz w wyniku i nigdy nie jest rejestrowana ani zapisywana. Jeśli ją zgubisz, wygeneruj nową parę, bo nikt nie będzie mógł jej odzyskać.
Do czego służy opcja komentarza?
Komentarz jest dopisywany do wiersza klucza publicznego OpenSSH, zwykle jako user@host lub etykieta, na przykład deploy-2026, aby ułatwić rozpoznanie klucza w authorized_keys. Nie zmienia klucza ani jego odcisków. Komentarz może mieć maksymalnie 200 znaków, a ciągi białych znaków są sprowadzane do pojedynczych spacji.
Jak losowe są te klucze?
Liczby pierwsze pochodzą z kryptograficznie bezpiecznego generatora liczb losowych systemu operacyjnego, za pośrednictwem OpenSSL — z tego samego źródła, którego serwery używają do tworzenia własnych kluczy. Każde żądanie generuje nową, niezależną parę kluczy. Wykładnik publiczny ma zawsze wartość 65537, która jest standardowa.