Konverter JWK
Konversikan kunci antara PEM dan JSON Web Key. Tempel kunci privat PEM dalam format PKCS #8, PKCS #1, atau SEC1, kunci publik, atau sertifikat untuk mendapatkan JWK-nya; atau tempel JWK maupun JWKS hingga 20 kunci untuk mendapatkan kembali PEM PKCS #8 dan SPKI. Kunci RSA, EC (P-256, P-384, P-521, secp256k1), Ed25519, Ed448, X25519, dan X448 didukung. Setiap kunci ditampilkan dengan jenis dan sidik jari RFC 7638.
Pertanyaan yang sering diajukan
Bagaimana konverter menentukan arah konversi?
Input yang diawali dengan { dibaca sebagai JWK atau JWKS lalu dikonversi ke PEM. Input yang berisi baris -----BEGIN dibaca sebagai PEM lalu dikonversi ke JWK. Input lainnya ditolak dengan petunjuk tentang format yang diharapkan.
Input PEM apa saja yang diterima?
Kunci privat tanpa enkripsi dalam format PKCS #8 (BEGIN PRIVATE KEY), PKCS #1 (BEGIN RSA PRIVATE KEY), dan SEC1 (BEGIN EC PRIVATE KEY); kunci publik dalam format SPKI (BEGIN PUBLIC KEY) atau PKCS #1 (BEGIN RSA PUBLIC KEY); serta sertifikat X.509, yang kunci publiknya akan dikonversi. Jika Anda menempelkan beberapa blok PEM, kunci privat pertama yang digunakan; jika tidak ada, kunci publik atau sertifikat pertama yang digunakan.
Apa yang saya dapatkan untuk kunci privat?
Kunci PEM privat menghasilkan JWK privat dengan semua anggotanya, seperti d, p, q, dp, dq, dan qi untuk RSA, serta JWK publik yang cocok. Bagikan hanya JWK publik karena JWK privat berisi materi kunci rahasia.
Bisakah saya mengonversi seluruh JWKS?
Ya. Tempel dokumen dengan array keys yang berisi hingga 20 kunci, misalnya dari endpoint jwks_uri, dan setiap kunci akan dikonversi ke PEM beserta indeks dan kid-nya. JWK privat, yang dikenali dari anggota d, menghasilkan kunci privat PKCS #8 dan kunci publik SPKI.
Mengapa kunci simetris tidak dapat dikonversi?
Kunci dengan kty oct adalah byte rahasia biasa untuk HMAC atau AES dan tidak memiliki representasi PEM. Gunakan langsung, misalnya di Generator JWT, yang menerima JWK oct sebagai rahasia HMAC.
Apa fungsi opsi kid?
Jika diaktifkan, sidik jari RFC 7638 kunci ditambahkan sebagai anggota kid pada JWK yang dihasilkan. Ini memberi kunci pengenal stabil yang dapat dicocokkan oleh pemverifikasi dengan header kid pada JWT.
Apa itu sidik jari RFC 7638?
Ini adalah hash SHA-256 base64url atas anggota publik wajib dari kunci, dalam urutan tetap, seperti e, kty, dan n untuk RSA atau crv, kty, x, dan y untuk EC. Kunci yang sama selalu memiliki sidik jari yang sama, baik disimpan sebagai PEM maupun JWK.
Apakah kunci terenkripsi atau kunci OpenSSH didukung?
Tidak. Frasa sandi pada kunci PEM terenkripsi harus dihapus terlebih dahulu, misalnya dengan openssl pkey -in encrypted.pem -out key.pem. Kunci privat OpenSSH harus dikonversi ke PEM dengan ssh-keygen sebelum dapat dibaca di sini.
Jenis kunci apa saja yang berfungsi?
RSA, EC pada P-256, P-384, P-521, dan secp256k1, serta jenis OKP Ed25519, Ed448, X25519, dan X448. Kunci DSA dan Diffie-Hellman tidak memiliki format JWK dan akan ditolak dengan penjelasan.
Apakah kunci privat saya disimpan?
Tidak. Kunci dikonversi di memori untuk permintaan ini dan tidak pernah dicatat atau disimpan. Sebaiknya konversikan kunci publik secara online dan tangani kunci privat produksi hanya pada sistem yang Anda kendalikan.