JWK-muunnin
Muunna avaimia PEM- ja JSON Web Key -muodon välillä. Liitä PKCS #8-, PKCS #1- tai SEC1-muotoinen PEM-yksityisavain, julkinen avain tai varmenne saadaksesi siitä JWK:n, tai liitä JWK tai enintään 20 avaimen JWKS saadaksesi PKCS #8- ja SPKI-PEM-muodot. Tuettuja avaintyyppejä ovat RSA, EC (P-256, P-384, P-521, secp256k1), Ed25519, Ed448, X25519 ja X448. Kunkin avaimen tyyppi ja RFC 7638 -sormenjälki näytetään.
Usein kysytyt kysymykset
Miten muunnin tietää, kumpaan suuntaan muuntaa?
Syöte, joka alkaa merkillä {, tulkitaan JWK:ksi tai JWKS:ksi ja muunnetaan PEM-muotoon. Syöte, joka sisältää -----BEGIN-rivin, tulkitaan PEM-muotoiseksi ja muunnetaan JWK:ksi. Muut syötteet hylätään, ja niiden yhteydessä kerrotaan odotetut muodot.
Millaiset PEM-syötteet hyväksytään?
Hyväksytään salaamattomat PKCS #8- (BEGIN PRIVATE KEY), PKCS #1- (BEGIN RSA PRIVATE KEY) ja SEC1-muotoiset (BEGIN EC PRIVATE KEY) yksityisavaimet sekä SPKI- (BEGIN PUBLIC KEY) tai PKCS #1 -muotoiset (BEGIN RSA PUBLIC KEY) julkiset avaimet ja X.509-varmenteet, joista muunnetaan julkinen avain. Jos liität useita PEM-lohkoja, ensimmäinen yksityisavain valitaan. Jos niitä ei ole, valitaan ensimmäinen julkinen avain tai varmenne.
Mitä yksityisavaimesta saadaan?
Yksityistä PEM-avainta käytettäessä tuloksena on yksityinen JWK kaikkine jäsenineen, kuten RSA-avaimen d, p, q, dp, dq ja qi, sekä sitä vastaava julkinen JWK. Jaa vain julkinen JWK, sillä yksityinen sisältää salaisen avainmateriaalin.
Voinko muuntaa koko JWKS:n?
Kyllä. Liitä enintään 20 avaimen keys-taulukon sisältävä dokumentti, esimerkiksi jwks_uri-päätepisteestä saatu, niin jokainen avain muunnetaan PEM-muotoon indeksin ja kid-arvon kanssa. Yksityisistä JWK-avaimista, jotka tunnistetaan d-jäsenestä, palautetaan sekä PKCS #8 -yksityisavain että SPKI-julkinen avain.
Miksi symmetristä avainta ei voi muuntaa?
kty-arvon oct sisältävät avaimet ovat HMAC- tai AES-käyttöön tarkoitettuja tavallisia salaisia tavuja, eikä niillä ole PEM-esitysmuotoa. Käytä niitä suoraan esimerkiksi JWT Generatorissa, joka hyväksyy oct-JWK:n HMAC-salaisuudeksi.
Mitä kid-valinta tekee?
Kun valinta on käytössä, luotuun JWK:hon lisätään avaimen RFC 7638 -sormenjälki kid-jäsenenä. Näin avain saa pysyvän tunnisteen, jonka varmentajat voivat täsmäyttää JWT-otsakkeen kid-arvoon.
Mikä on RFC 7638 -sormenjälki?
Se on base64url-muotoinen SHA-256-tiiviste, joka lasketaan avaimen vaadituista julkisista jäsenistä kiinteässä järjestyksessä. Esimerkiksi RSA-avaimella käytetään e-, kty- ja n-jäseniä ja EC-avaimella crv-, kty-, x- ja y-jäseniä. Samalla avaimella on aina sama sormenjälki, olipa se tallennettu PEM- tai JWK-muodossa.
Tuetaanko salattuja avaimia tai OpenSSH-avaimia?
Ei. Salattujen PEM-avainten salasana on poistettava ensin, esimerkiksi komennolla openssl pkey -in encrypted.pem -out key.pem. OpenSSH-yksityisavaimet on muunnettava PEM-muotoon ssh-keygenillä, ennen kuin ne voidaan lukea täällä.
Mitkä avaintyypit toimivat?
Tuettuja ovat RSA, EC-käyrät P-256, P-384 ja P-521 sekä secp256k1, ja OKP-tyypit Ed25519, Ed448, X25519 ja X448. DSA- ja Diffie-Hellman-avaimille ei ole JWK-muotoa, joten ne hylätään selityksen kera.
Säilytetäänkö yksityisavimeni?
Ei. Avain muunnetaan muistissa tätä pyyntöä varten, eikä sitä koskaan kirjata lokiin tai tallenneta. Suosi julkisten avainten muuntamista verkossa ja käsittele tuotantoympäristön yksityisavaimia vain hallitsemillasi järjestelmillä.