RSA鍵ジェネレーター
2048または3072ビットのモジュラスと公開指数65537を使って、新しいRSA鍵ペアを生成します。秘密鍵は暗号化されていないPKCS #8 PEM、公開鍵はSPKI PEMとして取得でき、対応するOpenSSH ssh-rsa行とSHA-256フィンガープリント、署名に使用できるRSおよびPSアルゴリズム、鍵IDとして使えるRFC 7638 JWKサムプリントも表示されます。鍵ペアはリクエストごとにNodeのcryptoモジュールで生成され、保存されることはありません。
よくある質問
2048ビットと3072ビットのどちらを選べばよいですか?
2048ビットRSAは今も一般的な最小値であり、小さい鍵を拒否するJWTライブラリを含め、あらゆる環境で受け入れられます。3072ビットは、NIST SP 800-57が2030以降に推奨する128ビットのセキュリティレベルに相当しますが、署名が大きくなり、署名処理も遅くなります。4096ビットなどのより大きなサイズは、共有サーバーでの生成時間が予測できないため、提供していません。
結果はどの形式ですか?
秘密鍵はPEM形式のPKCS #8(BEGIN PRIVATE KEY)、公開鍵はPEM形式のSubjectPublicKeyInfo(BEGIN PUBLIC KEY)です。どちらもOpenSSL、Java、.NET、Go、Node、jose、その他ほとんどのライブラリで読み込めます。authorized_keysファイル用にOpenSSH公開鍵行も追加されます。
秘密鍵は暗号化されていますか?
いいえ。秘密鍵はパスフレーズなしで返されるため、そのまま他のツールに貼り付けられます。保存時に保護するには、openssl pkey -in key.pem -aes256 -out key-encrypted.pemを実行し、暗号化されたファイルだけを保存してください。暗号化されていないコピーはバージョン管理に含めないでください。
PKCS #1形式(BEGIN RSA PRIVATE KEY)にするにはどうすればよいですか?
一部の古いソフトウェアでは従来のPKCS #1形式が必要です。OpenSSL 3では、openssl pkey -in key.pem -traditional -out key-rsa.pemを実行してPKCS #8ファイルを変換してください。鍵の中身は同じで、ラッパーだけが変わります。
この鍵はSSHに使えますか?
はい。サーバー上の~/.ssh/authorized_keysにssh-rsa行を追加し、秘密PEMを権限600でIDファイルとして保存してください。OpenSSHはPEM形式のRSA鍵を読み込めます。現在は多くのサーバーがEd25519鍵を推奨しており、Ed25519鍵ジェネレーターで作成できます。
JWKサムプリントとは何ですか?
RFC 7638に基づくSHA-256ハッシュで、公開鍵の必須JWKメンバーをbase64urlでエンコードしたものです。形式に依存せず鍵を識別できるため、JWTやJWKSドキュメントのkid値として適しています。JWKコンバーターでは、この鍵の同じ値が表示されます。
この鍵で署名できるJWTアルゴリズムはどれですか?
RSA鍵はRS256、RS384、RS512(PKCS #1 v1.5)およびPS256、PS384、PS512(RSA-PSS)に署名できます。秘密PEMをJWTジェネレーターで使用し、検証側には公開PEMまたはそのJWKを渡してください。アルゴリズムは署名の属性なので、1つの鍵を複数のアルゴリズムに使用できます。
生成した鍵はどこかに保存されますか?
いいえ。鍵ペアはリクエストごとにメモリ上で作成され、結果として一度だけ返され、ログ記録も保存もされません。鍵を紛失した場合は、新しいペアを生成してください。誰も復元できません。
コメントオプションは何をしますか?
コメントはOpenSSH公開鍵行に追加されます。通常はuser@hostやdeploy-2026などのラベルを指定し、authorized_keys内で鍵を識別できるようにします。鍵やフィンガープリントは変わりません。コメントは200文字までで、空白文字は単一のスペースにまとめられます。
鍵のランダム性はどの程度ですか?
素数は、OpenSSLを通じてOSの暗号学的に安全な乱数生成器から取得します。これはサーバーが独自の鍵を生成するときに使うものと同じです。リクエストごとに、新しく独立した鍵ペアが生成されます。公開指数は標準値の65537で固定されています。