SSL証明書デコード(有効期限・SAN・発行者確認)

PEM形式のSSL/TLS証明書を貼り付けると、有効期限(JST・残日数・期限切れ警告)、発行者/サブジェクトのCN・O、SAN(DNS名・IP)、公開鍵の種類とビット長、SHA-256/SHA-1フィンガープリントを解析します。秘密鍵は警告して処理しません。

この証明書は解説用に作成した自己署名のテスト証明書です(実在のサイトのものではありません)。ブラウザ内だけで解析し、内容はどこにも送信されません。

秘密鍵(PRIVATE KEY)やCSR(証明書署名要求)は貼り付けないでください。 このツールは公開情報である証明書(CERTIFICATE)のみを解析対象とし、秘密鍵が貼り付けられた場合は内容を解析せず警告のみ表示します。秘密鍵はサーバーの外に一切出さないことが安全な運用の基本です。

使い方

  1. 解析したいSSL/TLS証明書のPEM形式(-----BEGIN CERTIFICATE----- で始まるテキスト)を貼り付けます。
  2. 貼り付けと同時に、有効期限・発行者(Issuer)・サブジェクト(Subject)・SAN・公開鍵の種類・フィンガープリントなどが表示されます。
  3. 中間証明書やルート証明書を含む複数のPEMをまとめて貼り付けると、チェーンとして順番にすべて解析します。

仕組み・根拠

SSL/TLS証明書はX.509 v3形式(RFC 5280)で構造が定義されており、証明書本体(tbsCertificate)・署名アルゴリズム・署名値の3要素からなるASN.1のDER(Distinguished Encoding Rules)バイナリを、Base64でテキスト化したものがPEM形式です。本ツールはこのDER構造を自前のTLV(タグ・長さ・値)パーサで読み解いており、外部のASN.1ライブラリは使用していません。発行者・サブジェクトの属性名(CN、O、OUなど)はRFC 5280 Appendix Aで定義されたオブジェクト識別子(OID)から解決しています。有効期限(NotBefore/NotAfter)はUTCTimeまたはGeneralizedTimeとして符号化されており、RFC 5280 §4.1.2.5.1の規定(2桁年は50以上を19XX、50未満を20XXと解釈)に従って変換しています。フィンガープリントは証明書のDERバイト列全体をSHA-256/SHA-1でハッシュ化したもので、ブラウザ標準のWebCrypto API(crypto.subtle.digest)を使用しています。

現場の落とし穴: 本ツールは証明書の中身を読み取って表示するだけで、署名の検証やチェーンの信頼性検証(ルートCAまで辿って正しく署名されているかの確認)は行っていません。有効期限内・内容が正常に見えても、それが正規のCAによって発行された本物の証明書であることの証明にはならない点に注意してください。また、Subject の CN(コモンネーム)は歴史的にホスト名の確認に使われてきましたが、現在の主要ブラウザはCNを無視しSAN(Subject Alternative Name)のみでホスト名を照合します。CNとSANの内容が食い違う証明書を運用していると、ブラウザ側でエラーになる場合があります。

よくある質問

Q. 秘密鍵を貼ってしまったらどうなりますか?

A. 本ツールは秘密鍵らしきPEMヘッダー(PRIVATE KEYなど)を検出すると内容の解析を行わず、警告のみを表示します。それでも秘密鍵はどのようなツールにも貼り付けず、安全な鍵管理の仕組み(HSM、Vault等)で扱うことを推奨します。

Q. 期限切れの証明書でも内容は見られますか?

A. 見られます。期限切れであることを赤字で明示したうえで、Subject・SANなどの内容は通常どおり表示します。

Q. RSAとEC(楕円曲線)以外の鍵には対応していますか?

A. Ed25519とEd448のアルゴリズムOIDは識別しますが、詳細な鍵データの解析はRSAとEC(P-256・P-384など)のみに対応しています。

関連ツール

最終更新・根拠の確認日: 2026-09-10 · カテゴリ: セキュリティ