ツール

RSA・ECDSA・Ed25519 鍵ペア生成ツール

RSA 2048〜4096、ECDSA P-256/P-384、Ed25519 の鍵ペアをブラウザ内で生成し、PEM と OpenSSH 形式で出力します。

ブラウザ内で実行ハッシュと暗号化3.1万
無料

結果

結果はここに表示されます。

テスト用 JWT の署名、ステージング環境の TLS 設定、CI ジョブ専用の SSH デプロイ鍵など、いますぐ鍵ペアが必要なのに、目の前のマシンに OpenSSL が入っていないことがあります。このページはブラウザの WebCrypto、つまりブラウザが TLS に使っているのと同じ実装で鍵を作るため、秘密鍵はお使いの端末上で生成され、ほかのどこにも存在しません。出力は PKCS#8 PEM の秘密鍵(または OpenSSH 秘密鍵ファイル)、SPKI PEM の公開鍵、そして authorized_keys に貼れる 1 行の OpenSSH 公開鍵です。コマンドラインで同じことをするなら OpenSSL(openssl/openssl、30k+ スター、Apache-2.0)で、このツールが書き出す PEM ファイルはすべて読み込めます。

動作のしくみ

  • 鍵は crypto.subtle.generateKey で生成します。RSA の公開指数は 65537、ECDSA は NIST 曲線を使い、Ed25519 はブラウザが対応している場合に使えます。
  • PEM は標準のコンテナである BEGIN PRIVATE KEY(PKCS#8)と BEGIN PUBLIC KEY(SPKI)で、OpenSSL、Node.js、Java、Go、あらゆる JWT ライブラリが変換なしで読み込めます。
  • OpenSSH の 1 行は RFC 4253、5656、8709 に従ってエンコードされ、テストで ssh-keygen が作った鍵とバイト単位で照合済みです。SHA256 フィンガープリントも ssh-keygen -l の表示と一致します。
  • 秘密鍵の形式に OpenSSH を選ぶと、暗号化されていない openssh-key-v1 ファイルを書き出します。これは OpenSSH 7.8 以降の ssh-keygen の既定形式です。

データの行き先

どこにも行きません。このツールは完全にブラウザ内で動作します。貼り付けたテキストはページが処理し、サーバーに送信されることも、ログに記録されることもありません。

このツールは鍵や資格情報を扱うため、実行に関する情報は一切保存されません。あなた自身の履歴にも残りません。

必要なポイント

このツールは無料です。ログインもポイントも必要ありません。

よくある質問

どの鍵の種類を選べばよいですか?
SSH なら Ed25519 を OpenSSH 秘密鍵形式で保存するのがおすすめです。鍵が短く高速で、選び間違えるパラメーターもありません。また macOS 付属のものを含む一部の ssh は、PKCS#8 で保存された Ed25519 鍵を読み込めません。TLS 証明書や JWT には、最新のクライアントで最も広くサポートされる ECDSA P-256 を選びます。RSA は古いシステムや厳格な要件がある場合に選びましょう。NIST SP 800-57 は 2048 ビット RSA を 2030 年まで十分とし、それ以降は 3072 ビットを推奨しています。4096 ビットの鍵はブラウザでの生成に数秒かかることがあります。
秘密鍵にパスフレーズがありません。どうすれば付けられますか?
OpenSSH 形式で保存し、ssh-keygen -p -f yourkey を実行するとその場でパスフレーズを設定できます。PKCS#8 ファイルなら openssl pkcs8 -topk8 -v2 aes-256-cbc -in key.pem -out key.enc.pem で暗号化したコピーを作れます。SSH 秘密鍵を保存したら chmod 600 で権限を絞ってください。そうしないと ssh が使用を拒否します。
BEGIN PRIVATE KEY ではなく BEGIN RSA PRIVATE KEY が必要です。
それは古い PKCS#1 コンテナで、中身の数値は同じです。OpenSSL 3 なら openssl rsa -in key.pem -traditional -out key.rsa.pem で変換できます。OpenSSH を含むほとんどの現行ソフトウェアは PKCS#8 をそのまま受け付けるので、本当に古い形式が必要か先に確認してください。
鍵ペアが正しいか確認するには?
ssh-keygen -y -f yourkey は OpenSSH 秘密鍵から導いた公開鍵を表示するので、このページの 1 行と一致するはずです。PEM の場合は openssl pkey -in key.pem -pubout が SPKI 公開鍵を出力し、PUBLIC KEY ブロックとバイト単位で一致するはずです。
Ed25519 でエラーになります。なぜですか?
Ed25519 は RSA や ECDSA より遅れて WebCrypto に加わったため、古いブラウザでは使えないことがあります。現行の Chrome、Edge、Firefox、Safari は対応しています。ブラウザを更新すれば解決し、それが難しければ最も近い代替は ECDSA P-256 です。

背後にあるオープンソース

このツールは外部ライブラリを同梱しない独自実装です。openssl/openssl(Apache-2.0)はコードとして同じ仕事をします。自分のプログラムで同じことをしたいなら、Web ページを呼ぶのではなくそちらから始めてください。

openssl/openssl

別の呼び方

  • RSA 鍵 生成
  • SSH 鍵 生成 オンライン
  • Ed25519 鍵 生成
  • 公開鍵 秘密鍵 作成
  • ECDSA 鍵 生成
  • OpenSSH 公開鍵