Generator Kunci RSA
Buat pasangan kunci RSA baru dengan modulus 2048 atau 3072 bit dan eksponen publik 65537. Anda mendapatkan kunci privat sebagai PEM PKCS #8 tanpa enkripsi, kunci publik sebagai PEM SPKI, baris OpenSSH ssh-rsa yang sesuai dengan sidik jari SHA-256-nya, algoritma RS dan PS yang dapat ditandatanganinya, serta sidik jari JWK RFC 7638 untuk digunakan sebagai ID kunci. Setiap pasangan dibuat dengan modul crypto milik Node untuk permintaan ini dan tidak pernah disimpan.
Pertanyaan yang sering diajukan
Sebaiknya pilih 2048 atau 3072 bit?
RSA 2048 bit masih menjadi ukuran minimum yang umum dan diterima di mana saja, termasuk oleh pustaka JWT yang menolak kunci lebih kecil. 3072 bit setara dengan tingkat keamanan 128 bit yang direkomendasikan NIST SP 800-57 untuk periode setelah 2030, dengan konsekuensi tanda tangan lebih besar dan proses penandatanganan lebih lambat. Ukuran yang lebih besar seperti 4096 bit tidak ditawarkan karena waktu pembuatannya tidak dapat diprediksi di server bersama.
Format apa yang digunakan hasilnya?
Kunci privat dikodekan dalam PEM PKCS #8 (BEGIN PRIVATE KEY), sedangkan kunci publik dikodekan dalam PEM SubjectPublicKeyInfo (BEGIN PUBLIC KEY). Keduanya dapat dibaca oleh OpenSSL, Java, .NET, Go, Node, jose, dan sebagian besar pustaka lainnya. Baris kunci publik OpenSSH disertakan untuk berkas authorized_keys.
Apakah kunci privat dienkripsi?
Tidak, kunci privat diberikan tanpa frasa sandi agar dapat langsung ditempelkan ke alat lain. Untuk melindunginya saat disimpan, jalankan openssl pkey -in key.pem -aes256 -out key-encrypted.pem dan simpan hanya berkas terenkripsi. Jangan masukkan salinan tanpa enkripsi ke kontrol versi.
Bagaimana cara mendapatkan format PKCS #1 (BEGIN RSA PRIVATE KEY)?
Beberapa perangkat lunak lama mengharapkan bentuk PKCS #1 tradisional. Dengan OpenSSL 3, jalankan openssl pkey -in key.pem -traditional -out key-rsa.pem untuk mengonversi berkas PKCS #8. Materi kuncinya sama; hanya pembungkusnya yang berubah.
Bisakah saya menggunakan kunci ini untuk SSH?
Ya. Masukkan baris ssh-rsa ke ~/.ssh/authorized_keys di server dan simpan PEM privat sebagai berkas identitas Anda dengan izin 600, karena OpenSSH membaca kunci RSA berkode PEM. Banyak server kini lebih memilih kunci Ed25519, yang dapat dibuat dengan Generator Kunci Ed25519.
Apa itu sidik jari JWK?
Ini adalah hash SHA-256 7638 dari anggota JWK wajib milik kunci publik, yang dikodekan dalam base64url. Sidik jari ini mengidentifikasi kunci terlepas dari formatnya, sehingga cocok digunakan sebagai nilai kid untuk JWT dan dokumen JWKS. Konverter JWK menampilkan nilai yang sama untuk kunci ini.
Algoritma JWT apa yang dapat ditandatangani dengan kunci ini?
Kunci RSA dapat menandatangani RS256, RS384, dan RS512 (PKCS #1 v1.5), serta PS256, PS384, dan PS512 (RSA-PSS). Gunakan PEM privat dengan Generator JWT dan berikan PEM publik atau JWK-nya kepada pihak yang melakukan verifikasi. Algoritma merupakan properti tanda tangan, sehingga satu kunci dapat digunakan untuk beberapa algoritma tersebut.
Apakah kunci yang dibuat disimpan di suatu tempat?
Tidak. Pasangan kunci dibuat di memori untuk permintaan Anda, diberikan satu kali dalam hasil, dan tidak pernah dicatat atau disimpan. Jika hilang, buat pasangan baru karena tidak ada yang dapat memulihkannya untuk Anda.
Apa fungsi opsi komentar?
Komentar ditambahkan ke baris kunci publik OpenSSH, biasanya user@host atau label seperti deploy-2026, agar Anda dapat mengenali kunci di authorized_keys. Komentar tidak mengubah kunci atau sidik jarinya. Panjang komentar dibatasi hingga 200 karakter dan spasi berurutan diringkas menjadi satu spasi.
Seberapa acak kunci yang dibuat?
Bilangan prima berasal dari generator acak aman secara kriptografis milik sistem operasi melalui OpenSSL, sumber yang sama yang digunakan server untuk kuncinya sendiri. Setiap permintaan menghasilkan pasangan kunci baru yang independen. Eksponen publik selalu 65537, nilai standar.