piapia123
ja

証明書パーサー

エンコード

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

`.crt` / `.pem` の中身を貼り付けると、バージョン・シリアル番号・サブジェクト・発行者・有効期限・公開鍵・SAN・鍵用途・署名アルゴリズム・SHA-256 / SHA-1 フィンガープリントを表示します。PEM・生の base64・16 進表記に対応します。 ⚠️ 読むだけで、検証はしません。 使う前に知っておくべき点です:証明書が*解析できる*ことと*信頼できる*ことは全く別の問題であり、項目をきれいに並べた画面は後者も済んだかのような誤解を招きます。 信頼チェーンの検証とは:発行者の証明書を取得し、信頼されたルートまで遡り、各段で基本制約と鍵用途が署名を許すか確認し、失効状態(CRL または OCSP、いずれもネットワークが必要)を確認し、ホスト名を SAN と照合することです。ブラウザーはこれを TLS ハンドシェイクのときだけ、独自のルート証明書ストアを使って行います —— Web ページには到底できません。 したがってここで得られるのは事実、つまり証明書に書かれていることです。信頼すべきかは別の判断です。 ⚠️ ここで行う唯一の確認は自己署名の検査 —— サブジェクトと発行者を比べるだけです。違っていても問題ではありません:ほとんどの証明書は他者が署名しており、それが正常です。 ⚠️ 期限切れと有効開始前は、オプションに関係なく常に報告します —— 証明書にとって最も重要な情報だからです。すべてブラウザー内で完結します。

機能

  • ⚠️ 「読むだけで検証はしない」という説明を結果の先頭に配置(FAQ には隠しません)
  • バージョン・シリアル番号(2⁵³ を超えることがあるため文字列で)・署名アルゴリズム
  • サブジェクトと発行者のすべての属性(CN・O・OU・C・ST・L・emailAddress など)
  • 有効期限と残り日数。⚠️ 期限切れ・有効開始前は明確に報告します
  • 結果の先頭に3 段階の判定バナー —— 有効(残り日数つき)/期限切れ/有効開始前。十数行の明細から探さずに済みます
  • 公開鍵のアルゴリズムと鍵長(RSA は modulus から算出、EC は曲線から)、曲線名
  • SAN を 1 件ずつ表示し、DNS・IP・email・URI を区別。⚠️ IP は 4 オクテットで表記し、テキストとして読みません
  • 鍵用途と拡張鍵用途をビット単位で説明
  • 基本制約:CA 証明書かどうか、pathLenConstraint
  • SHA-256 と SHA-1 のフィンガープリント(16 進・コロン区切り)
  • PEM・生の base64・16 進表記の 3 形式に対応
  • ⚠️ `.cer` / `.der` のようなバイナリの証明書ファイルはそのままドロップできます —— シェルが16進数に変換してから解析します(これらのファイルは DER 符号化されたバイナリで、貼り付けられません)
  • すべてブラウザー内で完結し、証明書は送信されません

使い方

  1. 証明書の中身をそのまま貼り付けるか、`.cer` / `.der` ファイルをドロップします
  2. 結果は概要 → サブジェクト → 発行者 → 有効期限 → 公開鍵 → SAN → 鍵用途 → 署名 → フィンガープリントの順に並びます
  3. まず先頭の「読むだけで検証はしない」を読み、そのうえで各項目を確認します

よくある質問

この証明書が信頼できるか検証してくれますか?
いいえ、そもそもできません。 信頼チェーンの検証とは:発行者の証明書を取得し、信頼されたルートまで遡り、各段で基本制約と鍵用途が署名を許すか確認し、失効状態(CRL または OCSP、いずれもネットワークが必要)を確認し、ホスト名を SAN と照合することです。ブラウザーはこれを TLS ハンドシェイクのときだけ、独自のルート証明書ストアを使って行います —— Web ページにはそのストアも失効リストもありません。ここで得られるのは証明書に書かれていることで、信頼すべきかは別の手段で判断してください。当サイトの自己署名証明書ジェネレーターも同じ理屈で、あれが作る証明書を信頼するブラウザーはありません。
「自己署名:いいえ」は問題があるということですか?
いいえ。ほとんどの証明書は他者(CA)が署名しており、「いいえ」が完全に正常です。この項目はサブジェクトと発行者を比べているだけで、同一なら自分自身に署名した(自己署名証明書、ローカル開発や社内テストでよく使われます)、違えば上に層があるという意味です。信頼性とは無関係です:自己署名でも自分の信頼ストアに入れたものであればよく、CA 署名でも期限切れだったり別のホスト名だったりします。
期限切れの証明書も読めるのはなぜですか?
「この証明書に何が書かれているか」と「今も使えるか」は別の問いであり、前者には後者以外の用途もあるからです:発行者は誰か、どの名前をカバーしていたか、フィンガープリントの照合、古い証明書が当時のものかの確認。期限が切れても解析の意味は失われません。ただし結果では何日前に失効したかを明示します —— それは証明書にとって最も重要な情報であり、2 つの日付を引き算させるべきものではありません。
フィンガープリントは何に使うのですか?
証明書全体のハッシュで、同じ証明書かどうかを確かめるためのものです。サーバーに載っているものと手元のものが同一か、ダウンロードしたものが改変されていないか。現在使うのは SHA-256 です(`openssl x509 -fingerprint -sha256`)。SHA-1 も表示するのは、古いドキュメントや管理画面がいまだに印字しているからですが、SHA-1 はもはやセキュリティ上の判断に使うべきではありません。
自分の証明書に SAN がないのはなぜですか?
おそらくかなり古い証明書です。Chrome はバージョン 58 以降 CN を完全に無視し、subjectAltName だけで照合します。そのため現在発行される証明書は必ず SAN を持ちます(ホスト名が 1 つでも、CN を中に繰り返し書きます)。CN のみの証明書は現代のブラウザーでは接続できず、エラーは「名前が一致しません」としか出ないため、別の問題だと誤解されがちです。自分で発行したなら、SAN 付きで発行し直してください。

関連ツール