Konwersja JSON Web Key do PEM i z powrotem dla kluczy RSA, EC i Ed25519, z odciskiem (thumbprint)
Działa w przeglądarce. Wpisane dane nie są nigdzie wysyłane. Sprawdzono 16 października 2026.JWK to klucz zapisany jako JSON, używany przez JWT, OAuth i OpenID Connect; PEM to tekstowa postać Base64 używana przez OpenSSL i serwery. Po wklejeniu jednej z nich powstaje druga, dla kluczy RSA, EC (P-256, P-384, P-521, secp256k1) i Ed25519, z odciskiem RFC 7638, w całości w przeglądarce.
Ta strona została przetłumaczona maszynowo z angielskiego oryginału. Tłumaczenie nie zostało jeszcze sprawdzone przez człowieka, dlatego wiążąca jest wersja angielska. Przeczytaj angielski oryginał
Wklej JWK, JWK Set z adresu jwks.json albo klucz lub certyfikat PEM.
Kierunek jest wykrywany: JWK staje się PEM, a PEM staje się JWK.
Wybierz format PEM, np. PKCS#8 lub PKCS#1, albo zaznacz Tylko klucz publiczny, aby usunąć część prywatną.
Kliknij Kopiuj lub Pobierz; odcisk RFC 7638 jest pokazywany dla każdego klucza.
JSON Web Keys i pliki PEM przechowują te same liczby w dwóch opakowaniach. JWK nazywa każdą część, np. moduł "n" i wykładnik "e" klucza RSA albo punkt "x" i "y" klucza EC, w Base64url. Plik PEM przechowuje te same wartości w DER, binarnym formacie X.509 i OpenSSL, między liniami BEGIN i END.
Co jest konwertowane.
| Klucz | JWK do PEM | PEM do JWK |
|---|---|---|
| RSA publiczny | SPKI lub PKCS#1 | PUBLIC KEY, RSA PUBLIC KEY, certyfikat |
| RSA prywatny | PKCS#8 lub PKCS#1 | PRIVATE KEY, RSA PRIVATE KEY |
| EC P-256, P-384, P-521, secp256k1 | SPKI; PKCS#8 lub SEC1 | PUBLIC KEY, PRIVATE KEY, EC PRIVATE KEY |
| Ed25519, Ed448, X25519, X448 | SPKI; PKCS#8 | PUBLIC KEY, PRIVATE KEY |
JWK Set z kilkoma kluczami staje się kilkoma blokami PEM, a kilka bloków PEM staje się jednym JWK Set. Certyfikaty i żądania certyfikatu dają swój klucz publiczny.
Formaty. SPKI ("PUBLIC KEY") i PKCS#8 ("PRIVATE KEY") działają dla każdego typu klucza i tego oczekuje większość bibliotek. PKCS#1 ("RSA PUBLIC KEY", "RSA PRIVATE KEY") to starsza postać tylko dla RSA; SEC1 ("EC PRIVATE KEY") to starsza postać EC z OpenSSL.
Odcisk. Dla każdego klucza pokazywany jest odcisk RFC 7638: SHA-256 jego wymaganych pól w ustalonej kolejności, którego wielu dostawców używa jako "kid". Zaznaczenie Dodaj kid wpisuje go do JWK.
Klucze prywatne. Zaznaczenie Tylko klucz publiczny usuwa pola prywatne przed publikacją. Gdy klucz prywatny nie zawiera części publicznej, jest ona wyliczana wbudowanym w przeglądarkę WebCrypto. Pliki PEM chronione hasłem trzeba najpierw odszyfrować.
Wynik sprawdzono bajt po bajcie z Node.js i OpenSSL dla każdego obsługiwanego typu klucza oraz z przykładami z RFC 7517 i RFC 7638. Klucze nigdy nie są nigdzie wysyłane, a nic z wklejonej treści nie jest przechowywane.
Wystarczy wkleić JWK do pola, a PEM pojawi się od razu: blok PUBLIC KEY dla klucza publicznego, blok PRIVATE KEY dla prywatnego. Dla kluczy RSA można przełączyć się na starszą postać PKCS#1, a dla prywatnych kluczy EC na SEC1. JWK Set z kilkoma kluczami daje jeden blok PEM na każdy klucz.
Należy otworzyć adres jwks.json dostawcy w przeglądarce, skopiować cały JSON i wkleić go tutaj. Każdy klucz z listy keys staje się kluczem publicznym PEM opisanym typem, rozmiarem i odciskiem, dzięki czemu można go dopasować do kid w nagłówku weryfikowanego tokena.
Oba przechowują klucz RSA. PKCS#1, oznaczony jako RSA PRIVATE KEY lub RSA PUBLIC KEY, zawiera tylko liczby RSA. PKCS#8, oznaczony jako PRIVATE KEY, opakowuje klucz dowolnego typu wraz z identyfikatorem algorytmu, tak jak SPKI robi to dla kluczy publicznych. Większość nowoczesnych bibliotek, w tym Java i Node.js, oczekuje PKCS#8 i SPKI.
To krótki identyfikator wyliczany z samego klucza, zdefiniowany w RFC 7638: wymagane pola, np. e, kty i n dla RSA, zapisuje się jako JSON w kolejności alfabetycznej bez spacji i haszuje SHA-256. Ten sam klucz zawsze daje ten sam odcisk, więc dobrze sprawdza się jako kid.
Konwersja odbywa się w całości w przeglądarce; klucz nie jest wysyłany, logowany ani przechowywany, a po załadowaniu strona działa offline. Mimo to z każdym kluczem prywatnym należy obchodzić się ostrożnie i najlepiej konwertować klucze testowe. Przy publikacji warto zaznaczyć Tylko klucz publiczny, aby pola prywatne nigdy nie pojawiły się w wyniku.
JWK klucza prywatnego Ed448 lub X448 musi zawierać klucz publiczny, a OpenSSL zwykle zapisuje takie pliki PEM bez niego. Jego wyliczenie wymaga obliczeń Ed448, których przeglądarki nie udostępniają. Należy wyeksportować klucz razem z częścią publiczną albo przekonwertować klucz publiczny osobno.
Stawki i przepisy się zmieniają; przed oparciem się na danej liczbie należy sprawdzić źródło.
Nadal coś nie działa? Zapytaj o narzędzie Konwerter JWK do PEM a odpowiedzieć może każdy, kto zna odpowiedź. Konto nie jest potrzebne.