RSA鍵ペア生成ツールとは?

Web Crypto APIを利用して、プライベートにRSA鍵ペアを生成します。1024~4096ビットの鍵サイズを選択でき、SSH、TLS証明書、JWT署名、暗号化通信に使用するPEM形式で鍵をエクスポートできます。秘密鍵がお使いのデバイスから外部に送信されることはありません。

Web Crypto API が重い計算をすべてあなたの端末で実行し、鍵が端末の外に出ることはありません。1024・2048・3072・4096 ビットから選び、鍵ペアを暗号化(RSA-OAEP)用にするか署名(RSASSA-PKCS1-v1_5)用にするかを決めます。書き出し形式は 4 種類:PEM PKCS#8(現代の既定)、PEM PKCS#1(従来の RSA ブロック)、JWT や OIDC スタック向けの JWK、そして authorized_keys にそのまま貼り付けられる OpenSSH の ssh-rsa 行です。SHA-256 フィンガープリントでサーバーの記録と鍵を照合できます。必要に応じて秘密鍵をパスフレーズで保護でき、標準準拠の EncryptedPrivateKeyInfo(PBES2 + PBKDF2-HMAC-SHA256 + AES-256-CBC)として包まれ、後から openssl pkcs8 で復号できます。秘密鍵しか手元にない場合は、「公開鍵を導出」タブに貼り付ければ対応する公開鍵を復元できます。

使い方

  1. RSA鍵のサイズを選択してください(本番環境では2048ビットまたは4096ビットを推奨)。
  2. 出力形式(PKCS#8、PKCS#1、JWK、OpenSSH)を選び、必要なら秘密鍵を暗号化するパスフレーズを設定して、生成をクリックすると端末上で鍵ペアが作成されます。
  3. 選んだ形式で公開鍵と秘密鍵をコピーまたはダウンロードします。

使用するタイミング

  • 秘密鍵を外部サービスへ渡せない案件で JWT を署名するとき。
  • ユニットテスト、ステージング、CI ランナー用に使い捨ての鍵ペアを用意するとき。
  • 新しい SSH ユーザーや、入社時オンボーディングチケット用に鍵を発行するとき。

結果

JWT署名用に4096ビットのRSA鍵ペアを生成します。公開鍵は認証サーバーの設定に配置し、秘密鍵は安全なマシンに保管します。

よくある質問

2048 と 4096、どちらを選べばよいですか?
2048 は本番環境の現行下限で、多くの TLS 証明書もまだこの長さです。4096 は 10〜20 年ほど安全余裕が増えますが、署名速度は約 5 倍遅くなります。1024 は現代の脅威モデルでは破られ、旧システムとの互換用にしか残しません。
同じ鍵ペアを暗号化と署名の両方に使ってもよいですか?
技術的には可能でも避けるべきです。Web Crypto API は鍵ごとに用途を 1 つに固定する設計で、NIST の推奨と一致します。同じ鍵で両方の演算を行うとプロトコル上の攻撃面が増え、ローテーションも複雑になります。2 つのペアを別々に作りましょう。
このツールから SSH 鍵を取り出すには?
OpenSSH 出力形式(または「SSH 鍵」プリセット)を選びます。公開側は authorized_keys 用にそのまま使える ssh-rsa 行として出力され、秘密側は id_rsa として保存する標準の PKCS#8 PEM です。すでに PEM の秘密鍵がある場合は、ssh-keygen -y -f id_rsa > id_rsa.pub で公開鍵行を導出したり、PuTTY なら puttygen --to-openssh を使ったりもできます。どちらも PKCS#8 と PKCS#1 の入力をそのまま受け付けます。
2026 年現在、Ed25519 ではなく RSA を選ぶ理由はありますか?
Ed25519 は高速で 256 ビット鍵、SSH や署名のモダンな既定値です。RSA を選ぶのは互換性が必要なときで、TLS ルート、保守的な JWT ライブラリ、古い HSM、レガシー SAML、EdDSA 未対応の相手が代表例です。
SHA-256 フィンガープリントは具体的に何の役に立ちますか?
公開鍵(SPKI バイト列)の短い暗号要約です。電話・Signal・対面など別経路で相手と突き合わせれば、受け取った鍵がすり替えられておらず相手が生成したそのものであることを確認できます。

関連ツール