証明書 & 秘密鍵マッチャー

サーバーが使っている証明書と、それと一緒にデプロイしようとしている秘密鍵を貼り付けてください。 デプロイ済みサイトが失敗する問いにこのページが答えます:両者は同じ鍵ペアから来たか? 答えはモジュラス長やフィンガープリントだけからの推測ではありません — ページは秘密鍵で 固定チャレンジに署名し、証明書内の公開鍵でその署名を検証します。 検証が通れば両者はペア。失敗すれば、設定をいくら編集しても動きません。 両側の読み取り(アルゴリズム、鍵サイズ、サブジェクト鍵識別子、公開鍵フィンガープリント)が 並べて表示され、貼り付けたものがブラウザーの外に出ることはありません。
1. 証明書またはチェーン
ブロックはいくつ貼り付けてもかまいません。すべての証明書がすべての鍵に対してチェックされるため、 チェーン + 1 つの鍵で、その鍵がチェーン内のどの証明書に属するかが正確にわかります — バンドルから誤った証明書を配信しているサーバーでよくある驚きです。PEM、裸の base64 / 16 進本体、 PKCS#7 .p7b ファイルもすべて読めます。鍵が落ち着いたら 証明書チェッカーが証明書自体を監査します。
2. 秘密鍵、または公開鍵
PKCS#8(BEGIN PRIVATE KEY)、PKCS#1(BEGIN RSA PRIVATE KEY)、 SEC1(BEGIN EC PRIVATE KEY)、裸の SPKI 公開鍵(BEGIN PUBLIC KEY)がすべて理解され、 base64 または 16 進で貼られた鍵ファイルも同様です。暗号化された PKCS#8 鍵 (BEGIN ENCRYPTED PRIVATE KEY)はブラウザーが読めないためその旨を報告し、 パスフレーズを外すコマンドを示します。
まだ何もチェックされていません
サンプルは自己署名証明書とそれに属する秘密鍵で、どちらもこのページのために作られ何も保護していません。 鍵を他の鍵に置き換えるともう一方の評決が見られ、秘密鍵の代わりに公開鍵ブロックを置くと 公開鍵一致が見られます。
Web ページに貼り付ける秘密鍵は、まず一考に値します。 このページは素の JavaScript 1 ファイルで、どこからも何も読み込まずリクエストも発しないため、 鍵はこのタブの中で読まれ、使われ、忘れられます。それでも、それは読めるコードによる約束であって、 見えるネットワークによる保証ではありません。本番鍵を扱うならオフラインで作業し、 最も安全な確認は自分のサーバー上での同じ openssl コマンドであることを検討してください。 ここに貼った鍵は決して保存されず、ファイルに書かれず、どこにも送信されません — エクスポートボタンも 鍵についての所見を書くだけで、鍵自体は決して書きません。
署名が答えである理由。2 つのファイルが似ていても不一致のことがあります: 多くのガイドは RSA 鍵をモジュラスで比較しますが、それは RSA でしか成り立たず、鍵は正しい モジュラスを持ちながら壊れた指数や誤ったパディングを持つことができます。このページは ハンドシェイクと同じ方法でペアを証明します — 秘密鍵で固定チャレンジに署名し、 証明書内の公開鍵で検証 — したがって評決は RSA・ECDSA・Ed25519 のいずれにも成り立ちます。 公開半分だけが貼られた場合は、公開鍵バイト自体が証明書内のものと比較され、同一性については 同様に決定的です。ただし誰かが秘密半分を保持していることの証明はありません。

一致が教えないこと。その鍵がサーバーに実際に読み込まれているもの、証明書が信頼されていること、 ディスク上の鍵ファイルが無傷なこと、鍵が他の誰かにコピーされていないこと。 クライアントが受け取る証明書がそれかどうかも言えません。サイトの前のロードバランサーや CDN が 別のものを配信することがあるためです。稼働中のサーバーが実際に提示するものを確認するには openssl s_client -connect example.com:443 -servername example.com -showcerts を実行し、 その出力を証明書ボックスに貼ってください。

ファイルの出所。証明書はサーバーに設定されたもの、ブラウザーからエクスポートしたもの、 .p7b バンドルから取り出したもの。秘密鍵は Web サーバーが起動時に読むファイルで、 通常 privkey.pem や server.key のような名前です。鍵が暗号化されているなら、 まずコピーを openssl pkcs8 -topk8 -nocrypt -in key.pem -out key-plain.pem で復号して それを貼り、コピーを削除してください。
まだ何もチェックされていません。上に証明書と鍵を貼り付けて一致するか確認を押すと、 根拠とともに評決がここに表示され、レポートはコピーまたは保存できます。
同じ確認を openssl で、自分のマシン上で
# public key inside the certificate openssl x509 -in cert.pem -noout -pubkey | openssl pkey -pubin -outform DER | openssl sha256 # public key inside the private key openssl pkey -in key.pem -pubout | openssl pkey -pubin -outform DER | openssl sha256 # the two digests are equal only when the pair belongs together # the older RSA only way: compare moduli openssl x509 -in cert.pem -noout -modulus | openssl md5 openssl rsa -in key.pem -noout -modulus | openssl md5
ダイジェスト比較はすべての鍵種別で動作し、このページが公開鍵フィンガープリントとして報告する値と一致します。 モジュラス比較は RSA にしか存在しません。どちらも誰かが秘密半分を保持していることの証明ではありません — 上の署名チェックがそれをします。このページが署名を使う理由です。
レポートの中身。評決、その根拠となった両側の読み取り(アルゴリズム、鍵サイズ、曲線、 サブジェクト鍵識別子、公開鍵フィンガープリントの証明書側と鍵側)、実行された正確なテスト。 レポートに秘密鍵自体が含まれることは決してありません。鍵は署名の生成に使われるだけで、 テキストにも JSON にもクリップボードにも書き込まれません。コピーまたは保存するものは チケットに添付して安全です。貼り付けた鍵はそうではないので、クリップボードを 鍵が存在した唯一の他の場所として扱ってください。

プライバシー:証明書と鍵はタブ内で読まれ、何もアップロードされず、ページは一切リクエストを 発しません — このページには探査も照会もありません。一致するペアを作るには 自己署名証明書生成、既にある鍵の証明書を依頼するには CSR 生成、証明書の中身を読むには 証明書デコーダーを使ってください。