鍵ペア生成
Key Pair Generator
RSA・ECDSA・Ed25519の鍵ペアを作り、PEM・JWK・OpenSSHで書き出します。
ブラウザの中で公開鍵と秘密鍵の対を作り、OpenSSH、PEM(SPKIとPKCS#8)、JWKとして書き出します。Ed25519、ECDSAのP-256とP-384、RSAの2048・3072・4096を、ブラウザ自身のWebCryptoが生成します。
小さく、速く、現代的です。2014年以降、SSHの既定値です。
OpenSSH 公開鍵の行の末尾に付きます。
crypto.subtle.generateKey)がこのタブの中で生成し、タブの外へは出ません。送信も記録も保存もしません。出力形式はこのプロジェクトのテストで OpenSSH 自身と突き合わせて確かめています。できるなら、秘密鍵を置く機械そのもので生成してください。ブラウザのタブに存在した鍵は、そのタブのメモリに存在した鍵です。使い方
アルゴリズムを選びます
新しく作るものならEd25519です。小さくて速く、2014年以降SSHの既定になっています。相手側が要求するときにECDSAやRSAを使います。
生成して形式を選びます
OpenSSHは`authorized_keys`の1行と`openssh-key-v1`の秘密鍵を返します。PEMはSPKIとPKCS#8を、JWKはJOSEのライブラリ向けの形を返します。同じ鍵の、3つの表記です。
保存してからパスフレーズを掛けます
秘密鍵は暗号化せずに書き出します。手元で`ssh-keygen -p -f id_key`でパスフレーズを掛け、sshにそのファイルをそもそも使わせるために`chmod 600`をしてください。
よくある質問
ブラウザで秘密鍵を作っても大丈夫ですか
鍵はタブの外へ出ません。WebCryptoが作り、送信も、記録も、保存もしません。ただし、ブラウザのタブの中に存在した鍵は、そのタブのメモリに存在したということであり、それはシェルより広い面です。本番を守る鍵なら、その鍵を持つことになる機械の上で作ってください。
Ed25519がときどき出てこないのはなぜですか
そのブラウザのWebCryptoが実装していないからです。対応は遅く、そして不揃いに入ってきました。ページは読み込みのときに確かめて、失敗する選択肢を出す代わりに隠します。広く対応されているいちばん近い代わりは、ECDSAのP-256です。
RSAは2048と4096のどちらを使いますか
2048でいまも十分ですし、生成も利用もかなり速いです。4096は、誰にも大きさを見積もれない将来への余裕を買うもので、ハンドシェイクの時間という実際の対価を払います。互換性のためにRSAを選んでいるのなら、相手が求めていたのもたいてい2048です。
フィンガープリントはどこから来ている値ですか
OpenSSHの形式の公開鍵に対するSHA-256のフィンガープリントです。`ssh-keygen -lf`が表示するものと同じ文字列なので、そのまま見比べられます。
ここから渡せます
JWTデコーダー
JWT Decoder
ヘッダーとペイロードを復号し、期限のクレームを現地時刻で見せ、渡した鍵で署名も検証します。
JWKSによる署名検証
JWKS Verifier
JWKSのエンドポイントから鍵を取り、kidで選んで、トークンの署名と標準クレームを検証します。
SSH鍵の生成
SSH Key Generator
コメントを付けたOpenSSHの鍵ペアを作り、フィンガープリントも表示します。秘密鍵はパスフレーズなしで出力されるので、必要ならssh-keygen -pで自分でかけてください。
証明書デコーダー
Certificate Decoder
PEMやDERの証明書・CSRを解いて、サブジェクト・SAN・有効期間・鍵用途とチェーンの手がかりを示します。
次の一手
このツールが出したものをそのまま受け取れる道具です。
証明書デコーダー
Certificate Decoder
PEMやDERの証明書・CSRを解いて、サブジェクト・SAN・有効期間・鍵用途とチェーンの手がかりを示します。
CSR生成
CSR Generator
サブジェクトの各項目とSANのエントリから、証明書署名要求とその秘密鍵を作ります。
JWKSによる署名検証
JWKS Verifier
JWKSのエンドポイントから鍵を取り、kidで選んで、トークンの署名と標準クレームを検証します。
SSH鍵の生成
SSH Key Generator
コメントを付けたOpenSSHの鍵ペアを作り、フィンガープリントも表示します。秘密鍵はパスフレーズなしで出力されるので、必要ならssh-keygen -pで自分でかけてください。
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
curlをコードに変換
curl to Code
curlのコマンドをfetch・axios・Pythonのrequests・Go・PHP・PowerShellのコードに変換します。