SSL 証明書デコーダー — PEM、CRT、CSR ファイルを読み取り
PEM の証明書、チェーン、CSR を貼り付けるか .crt ファイルをアップロードすると、SAN、有効期限、発行者、鍵の種類、フィンガープリントがわかります。ブラウザ内でデコードします。
必要なのは証明書と CSR だけです。秘密鍵は決して Web サイトに貼り付けないでください。ここで貼り付けた場合は無視されます。
すべてブラウザ内で動作します。証明書はローカルでデコードされ、何もアップロードされず、OCSP や CT の照会も行いません。 すべての無料ツールを見る.
不具合や改善できそうな点を見つけましたか?いただいたメッセージはすべて読み、すぐに対応します。
この無料の SSL 証明書デコーダーは X.509 証明書を読み取り、中身を表示します。対象となるドメイン名(サブジェクト代替名)、発行者、有効期限と残り日数、鍵の種類とサイズ、拡張、そして SHA-256 と SHA-1 のフィンガープリントです。PEM のテキスト、fullchain.pem のチェーン全体、または CA に送る前の証明書署名要求(CSR)を貼り付けられます。.crt、.cer、.der、.pem ファイルをアップロードすることもできます。
デコードはブラウザ内で行われ、何もアップロードされず、ネットワークへの問い合わせも行いません。そのため、このツールが示すのは証明書に書かれている内容であり、信頼できるかどうかではありません。署名の検証、失効の確認(OCSP や CRL)、Certificate Transparency ログの照会は行いません。チェーンについては、各証明書の発行者名が次の証明書のサブジェクトと一致するかを確認し、最もよくある順序の誤りを見つけます。RSA しか扱えない多くの JavaScript のデコーダーと違い、RSA、ECDSA、Ed25519 の証明書を読み取れます。
使い方
- -----BEGIN CERTIFICATE----- で始まる証明書(複数でも可)、または -----BEGIN CERTIFICATE REQUEST----- で始まる CSR を貼り付けます。または「アップロード」をクリックして .crt、.cer、.der、.pem ファイルを選びます。
- 各証明書の色付きのステータス行を確認します。有効(残り日数付き)、まもなく期限切れ(30 日未満)、期限切れ、まだ有効になっていない、のいずれかです。
- 証明書が対象とすべきすべてのホスト名がサブジェクト代替名に含まれているか確認します。ブラウザはコモンネームを無視します。
- チェーンの場合は「チェーンの順序」欄を確認します。サーバー証明書が最初に来て、その後に各発行者が順に続くはずです。
- 各証明書のカードにあるボタンで、フィンガープリントや個々の証明書の PEM をコピーできます。
よくある質問
SSL 証明書の有効期限を確認するには?
ここに証明書を貼り付け、「有効期限」の行と、その上の残り日数を示すステータスを確認します。公開中のサイトが配信している証明書を取得するには、openssl s_client -connect example.com:443 -servername example.com -showcerts を実行するか、ブラウザで鍵のアイコン(またはサイト設定のアイコン)をクリックし、証明書ビューアーを開いてエクスポートします。コマンドラインで openssl x509 -in cert.pem -noout -enddate を使って確認することもできます。
PEM、DER、CRT、CER の違いは何ですか?
PEM と DER はエンコード方式で、CRT と CER は単なるファイル拡張子です。DER は証明書のバイナリ形式です。PEM は同じバイト列を Base64 にして -----BEGIN CERTIFICATE----- と -----END CERTIFICATE----- の行で挟んだもので、1 つの PEM ファイルに複数の証明書を入れられます。.crt や .cer ファイルにはどちらのエンコードも入り得ます(Windows では .cer は通常 DER を意味します)。このデコーダーは両方を受け付けます。
サブジェクト代替名(SAN)とは何ですか?
SAN 拡張は、証明書が有効なすべてのホスト名と IP アドレスを列挙するもので、example.com、www.example.com、*.example.com などが入ります。ブラウザが確認するのはこのリストだけで、サブジェクトのコモンネームは Chrome ではバージョン 58(2017 年)以降無視されています。一致する SAN がない証明書は、コモンネームが正しくても名前の不一致エラーになります。
証明書のフィンガープリントとは何ですか?
DER 形式の証明書全体のハッシュを 16 進数で表したものです。1 つの証明書を厳密に識別し、1 バイトでも違えばフィンガープリントは変わります。現在の標準は SHA-256 のフィンガープリントで、SHA-1 のフィンガープリントも一部のツールや古いシステムでまだ表示されます。フィンガープリントは秘密情報ではありません。ここに表示される SPKI ピンは別物で、公開鍵だけをハッシュするので、同じ鍵で証明書を更新しても変わりません。
SSL 証明書の有効期間はどれくらいまで可能ですか?
公に信頼される TLS 証明書について、CA/Browser Forum の上限は 2020 年 9 月から 398 日でした。投票 SC-081 により、これが段階的に短くなります。2026 年 3 月 15 日以降に発行される証明書は 200 日、2027 年 3 月 15 日以降は 100 日、2029 年 3 月 15 日以降は 47 日です。プライベートや社内の CA が発行する証明書には、これらの上限は適用されません。このツールは、リーフ証明書が発行日時点の上限を超えている場合に警告します。
ここに証明書を貼り付けても安全ですか?
はい。証明書はそもそも公開される前提のもので、サイトを訪れたすべての人が受け取っています。デコードもブラウザ内でローカルに行われます。秘密鍵は話が別で、どの Web サイトにも決して貼り付けないでください。貼り付けた内容に秘密鍵が含まれていた場合、このツールはそれを無視し、その旨をお知らせします。
証明書の読み方:各フィールドの意味
• サブジェクトと発行者:識別名です。CN はコモンネーム、O は組織、C は国です。自己署名証明書やルート証明書では両者は同じです。
• 有効期間:Not Before と Not After で、UTC で表されます。この期間外ではクライアントは証明書を拒否するので、端末の時計がずれていると有効な証明書でもエラーになることがあります。
• シリアル番号:CA ごとに一意で、失効リストはこの番号で証明書を指します。
• 公開鍵:RSA の鍵は 2048 ビット以上です。ECDSA の鍵は名前付き曲線(通常は P-256 か P-384)を使い、同程度の強度ではるかに短くなります。Ed25519 は、今のところ公開の TLS ではほとんど使われていません。
• 鍵用途と拡張鍵用途:鍵で何ができるか。TLS サーバー証明書には TLS Web Server Authentication が、CA 証明書には Certificate Sign が必要です。
• 基本制約:CA:TRUE は他の証明書を発行できる証明書を示し、パス長はその下に続けられる中間証明書の数を制限します。
• 機関情報アクセス(AIA):発行者の証明書の取得場所(CA Issuers)と、失効を問い合わせる場所(OCSP)。
チェーンの問題を直す
あるブラウザでは動くのに、別のブラウザや curl では失敗する「証明書が信頼されていない」エラーの多くは、サーバーが送るチェーンが原因です。サーバーは自身の証明書を最初に送り、次にそれを発行した中間証明書を、というように順に送るべきです。クライアントがすでに持っているルートを送る必要はありません。ブラウザは欠けている中間証明書を自分で取得できることもありますが(AIA の URL を使用)、curl、Java、Python、ほとんどのモバイルアプリはできないため、失敗します。
サーバーのチェーン全体(Let’s Encrypt なら fullchain.pem、他の CA なら自分の証明書の後に CA バンドルを続けたもの)をここに貼り付け、「発行者」の各行が緑になっているか確認してください。順序が間違っていれば、サーバー設定の PEM ブロックを並べ替えます。欠けているものがあれば、CA が提供する中間証明書を追加します。
関連する無料ツール
- JWT デコーダー — JWT のヘッダーとペイロードをデコードし、有効期限をわかりやすく表示し、HS・RS・PS・ES の署名を検証したり、新しいトークンに署名したりできます。何もブラウザの外に出ません。
- Base64 エンコーダー / デコーダー — テキストやファイルを Base64 にエンコードし、画像を CSS や <img> のコード付きでデータ URI に変換、Base64 をプレビュー可能なファイルにデコードできます。データはブラウザの外に出ません。
- パスワード生成 — 強力なランダムパスワード、覚えやすいパスフレーズ、PIN を生成します。すべてブラウザ内で動作し、何も送信・保存されません。
- curl コード変換 — Chrome の「Copy as cURL」を含む curl コマンドを貼り付けると、同じリクエストを Python、JavaScript、Node、Go、PHP、Ruby、Java、C#、wget、HTTPie のコードにします。
- YAML バリデーター — YAML を検証し、各エラーの正確な行と列を表示。yes/no の真偽値、タブ、重複キーなど、パーサーが黙って受け入れてしまうミスも見つけます。