Konwerter JWK
Konwertuj klucze między PEM a JSON Web Key. Wklej prywatny klucz PEM w formacie PKCS #8, PKCS #1 lub SEC1, klucz publiczny albo certyfikat, aby otrzymać JWK, lub wklej JWK albo JWKS zawierający do 20 kluczy, aby otrzymać klucze PEM PKCS #8 i SPKI. Obsługiwane są klucze RSA, EC (P-256, P-384, P-521, secp256k1), Ed25519, Ed448, X25519 i X448; każdy jest wyświetlany wraz z typem i odciskiem palca RFC 7638.
Najczęściej zadawane pytania
Jak konwerter rozpoznaje kierunek konwersji?
Dane wejściowe zaczynające się od { są odczytywane jako JWK lub JWKS i konwertowane do PEM. Dane zawierające wiersz -----BEGIN są odczytywane jako PEM i konwertowane do JWK. Pozostałe dane są odrzucane z podpowiedzią dotyczącą oczekiwanych formatów.
Jakie dane PEM są akceptowane?
Niezaszyfrowane klucze prywatne w formacie PKCS #8 (BEGIN PRIVATE KEY), PKCS #1 (BEGIN RSA PRIVATE KEY) i SEC1 (BEGIN EC PRIVATE KEY), klucze publiczne w formacie SPKI (BEGIN PUBLIC KEY) lub PKCS #1 (BEGIN RSA PUBLIC KEY) oraz certyfikaty X.509, z których konwertowany jest klucz publiczny. Jeśli wklejonych zostanie kilka bloków PEM, użyty zostanie pierwszy klucz prywatny, a jeśli go nie ma — pierwszy klucz publiczny lub certyfikat.
Co otrzymam dla klucza prywatnego?
Prywatny klucz PEM daje prywatny JWK ze wszystkimi jego polami, takimi jak d, p, q, dp, dq i qi w przypadku RSA, oraz odpowiadający mu publiczny JWK. Udostępniaj tylko publiczny JWK, ponieważ prywatny zawiera tajne dane klucza.
Czy mogę przekonwertować cały JWKS?
Tak. Wklej dokument z tablicą keys zawierającą do 20 kluczy, na przykład z punktu końcowego jwks_uri. Każdy klucz zostanie przekonwertowany do PEM z podanym indeksem i kid. Prywatne klucze JWK, rozpoznawane po polu d, zwracają zarówno klucz prywatny PKCS #8, jak i klucz publiczny SPKI.
Dlaczego nie można przekonwertować klucza symetrycznego?
Klucze z kty równym oct to zwykłe tajne bajty używane w HMAC lub AES i nie mają reprezentacji PEM. Użyj ich bezpośrednio, na przykład w generatorze JWT, który akceptuje JWK typu oct jako klucz tajny HMAC.
Do czego służy opcja kid?
Gdy jest włączona, odcisk palca klucza RFC 7638 zostaje dodany jako pole kid wygenerowanego JWK. Dzięki temu klucz otrzymuje stały identyfikator, który weryfikatorzy mogą dopasować do nagłówka kid w JWT.
Czym jest odcisk palca RFC 7638?
To skrót SHA-256 zakodowany w base64url, obliczany na podstawie wymaganych publicznych pól klucza w ustalonej kolejności, takich jak e, kty i n dla RSA albo crv, kty, x i y dla EC. Ten sam klucz zawsze ma taki sam odcisk palca, niezależnie od tego, czy jest zapisany jako PEM, czy JWK.
Czy obsługiwane są klucze szyfrowane lub klucze OpenSSH?
Nie. Najpierw trzeba usunąć hasło z zaszyfrowanych kluczy PEM, na przykład poleceniem openssl pkey -in encrypted.pem -out key.pem. Klucze prywatne OpenSSH trzeba przekonwertować do PEM za pomocą ssh-keygen, zanim będzie można je tutaj odczytać.
Jakie typy kluczy są obsługiwane?
RSA, EC na krzywych P-256, P-384, P-521 i secp256k1 oraz typy OKP: Ed25519, Ed448, X25519 i X448. Klucze DSA i Diffie-Hellmana nie mają postaci JWK i są odrzucane z wyjaśnieniem.
Czy mój klucz prywatny jest zachowywany?
Nie. Klucz jest konwertowany w pamięci na potrzeby tego żądania i nigdy nie jest rejestrowany ani zapisywany. Klucze publiczne najlepiej konwertować online, a produkcyjne klucze prywatne obsługiwać wyłącznie w kontrolowanych przez siebie systemach.