Μετατροπέας JWK
Μετατρέψτε κλειδιά μεταξύ PEM και JSON Web Key. Επικολλήστε ιδιωτικό κλειδί PEM σε μορφή PKCS #8, PKCS #1 ή SEC1, δημόσιο κλειδί ή πιστοποιητικό για να λάβετε το JWK του, ή επικολλήστε ένα JWK ή JWKS με έως 20 κλειδιά για να λάβετε πίσω PEM PKCS #8 και SPKI. Υποστηρίζονται κλειδιά RSA, EC (P-256, P-384, P-521, secp256k1), Ed25519, Ed448, X25519 και X448, καθένα με τον τύπο και το αποτύπωμα RFC 7638.
Συχνές ερωτήσεις
Πώς γνωρίζει ο μετατροπέας προς ποια κατεύθυνση να γίνει η μετατροπή;
Αν η είσοδος αρχίζει με {, διαβάζεται ως JWK ή JWKS και μετατρέπεται σε PEM. Αν περιέχει γραμμή -----BEGIN, διαβάζεται ως PEM και μετατρέπεται σε JWK. Οτιδήποτε άλλο απορρίπτεται με υπόδειξη για τις αναμενόμενες μορφές.
Ποιες είσοδοι PEM γίνονται δεκτές;
Μη κρυπτογραφημένα ιδιωτικά κλειδιά σε μορφή PKCS #8 (BEGIN PRIVATE KEY), PKCS #1 (BEGIN RSA PRIVATE KEY) και SEC1 (BEGIN EC PRIVATE KEY), δημόσια κλειδιά ως SPKI (BEGIN PUBLIC KEY) ή PKCS #1 (BEGIN RSA PUBLIC KEY) και πιστοποιητικά X.509, από τα οποία μετατρέπεται το δημόσιο κλειδί. Αν επικολληθούν πολλά τμήματα PEM, υπερισχύει το πρώτο ιδιωτικό κλειδί· διαφορετικά, επιλέγεται το πρώτο δημόσιο κλειδί ή πιστοποιητικό.
Τι λαμβάνω για ένα ιδιωτικό κλειδί;
Ένα ιδιωτικό κλειδί PEM δημιουργεί το ιδιωτικό JWK με όλα τα μέλη του, όπως d, p, q, dp, dq και qi για RSA, καθώς και το αντίστοιχο δημόσιο JWK. Κοινοποιήστε μόνο το δημόσιο JWK, επειδή το ιδιωτικό περιέχει τα μυστικά δεδομένα του κλειδιού.
Μπορώ να μετατρέψω ένα ολόκληρο JWKS;
Ναι. Επικολλήστε ένα έγγραφο με πίνακα keys που περιέχει έως 20 κλειδιά, για παράδειγμα από ένα endpoint jwks_uri, και κάθε κλειδί μετατρέπεται σε PEM με τον δείκτη και το kid του. Τα ιδιωτικά JWK, που αναγνωρίζονται από το μέλος d, επιστρέφουν τόσο το ιδιωτικό κλειδί PKCS #8 όσο και το δημόσιο κλειδί SPKI.
Γιατί δεν μπορεί να μετατραπεί ένα συμμετρικό κλειδί;
Τα κλειδιά με kty oct είναι απλά μυστικά byte για HMAC ή AES και δεν έχουν αναπαράσταση PEM. Χρησιμοποιήστε τα απευθείας, για παράδειγμα στη Γεννήτρια JWT, όπου ένα JWK oct γίνεται δεκτό ως μυστικό HMAC.
Τι κάνει η επιλογή kid;
Όταν είναι ενεργοποιημένη, το αποτύπωμα RFC 7638 του κλειδιού προστίθεται ως μέλος kid στο JWK που δημιουργείται. Έτσι το κλειδί αποκτά ένα σταθερό αναγνωριστικό, το οποίο οι επαληθευτές μπορούν να αντιστοιχίσουν με την κεφαλίδα kid ενός JWT.
Τι είναι το αποτύπωμα RFC 7638;
Είναι ένα hash SHA-256 σε base64url των απαιτούμενων δημόσιων μελών του κλειδιού, σε σταθερή σειρά, όπως e, kty και n για RSA ή crv, kty, x και y για EC. Το ίδιο κλειδί έχει πάντα το ίδιο αποτύπωμα, είτε αποθηκεύεται ως PEM είτε ως JWK.
Υποστηρίζονται κρυπτογραφημένα κλειδιά ή κλειδιά OpenSSH;
Όχι. Πρέπει πρώτα να αφαιρέσετε τη φράση πρόσβασης από τα κρυπτογραφημένα κλειδιά PEM, για παράδειγμα με openssl pkey -in encrypted.pem -out key.pem. Τα ιδιωτικά κλειδιά OpenSSH πρέπει να μετατραπούν σε PEM με το ssh-keygen για να μπορέσουν να διαβαστούν εδώ.
Ποιοι τύποι κλειδιών λειτουργούν;
RSA, EC σε P-256, P-384, P-521 και secp256k1, καθώς και οι τύποι OKP Ed25519, Ed448, X25519 και X448. Τα κλειδιά DSA και Diffie-Hellman δεν έχουν μορφή JWK και απορρίπτονται με σχετική εξήγηση.
Διατηρείται το ιδιωτικό μου κλειδί;
Όχι. Το κλειδί μετατρέπεται στη μνήμη για αυτό το αίτημα και δεν καταγράφεται ούτε αποθηκεύεται ποτέ. Προτιμήστε να μετατρέπετε δημόσια κλειδιά online και να χειρίζεστε ιδιωτικά κλειδιά παραγωγής μόνο σε συστήματα που ελέγχετε.