証明書デコーダー

PEM 形式の X.509 SSL/TLS 証明書をデコード。最大のセキュリティとプライバシーのためすべてブラウザ内で処理。

PEM 形式対応 詳細分析 100% クライアント側処理

証明書デコーダーの使い方

1

証明書を貼り付け

BEGIN/END ヘッダーを含む PEM エンコードされた証明書をコピーして入力フィールドに貼り付けてください

2

自動デコード

ツールが自動的に ASN.1/DER 構造を解析し、すべての証明書フィールドを抽出します

3

詳細を確認

サブジェクト、発行者、有効期間、SANs、公開鍵情報、SHA-256 フィンガープリントを確認できます

X.509 とは

X.509 は公開鍵証明書の形式を定義する ITU-T 標準です。X.509 証明書はアイデンティティ(サブジェクト)と公開鍵をバインドし、認証局(CA)によって署名されます。HTTPS ウェブサイトで使用される SSL/TLS 証明書が X.509 証明書の最も一般的な応用例です。

SSL/TLS証明書

X.509証明書はHTTPSの基盤であり、サーバーIDを検証し暗号化通信を可能にします

公開鍵基盤(PKI)

X.509はPKIで使用される公開鍵証明書の形式を定義し、IDを暗号鍵にバインドします

ASN.1/DERエンコーディング

証明書はASN.1 DER(Distinguished Encoding Rules)をバイナリ構造に使用し、PEM Base64でテキスト転送用にラップします

PEM / DER / CRT / PFX —— 証明書フォーマット比較

同じ X.509 証明書でも複数のファイル形式で保存できます。手元のがどれか分かれば手間が省けます——見分け方は次のとおり:

形式 拡張子 エンコード 主な用途
PEM .pem, .crt, .cer BEGIN/END ヘッダー付き Base64 ASCII テキスト Web サーバー(Nginx、Apache)、多くの Linux ツール——本ツールがデコードする形式
DER .der, .cer 生のバイナリ ASN.1 Java キーストア、一部の Windows・組み込みツール
P7B / PKCS#7 .p7b, .p7c Base64 ASCII、証明書のみ(秘密鍵なし) Windows への証明書チェーンインポート、IIS
PFX / PKCS#12 .pfx, .p12 バイナリ、パスワード保護、秘密鍵を含む場合あり Windows のインポート/エクスポート、IIS、コード署名バンドル

簡単な判別法:テキストエディタで開いて -----BEGIN CERTIFICATE----- が見えれば PEM。バイナリの文字化けに見えるなら DER か PFX です。

便利な OpenSSL コマンド

コマンドライン派ですか?これらの OpenSSL コマンドで本ツールと同じことができます——デコード、有効期限の確認、フィンガープリントの算出:

openssl x509 -in cert.pem -text -noout

証明書の全フィールドをデコードして表示

openssl x509 -in cert.pem -noout -dates

有効期間(notBefore / notAfter)のみ表示

openssl x509 -in cert.pem -noout -fingerprint -sha256

SHA-256 フィンガープリントを出力

openssl x509 -in cert.der -inform DER -text -noout

バイナリ DER 証明書をデコード

openssl x509 -in cert.pem -noout -subject -issuer

Subject と Issuer のみ表示

openssl s_client -connect example.com:443 -showcerts

稼働中のサーバーから証明書チェーンを取得

証明書フィールドリファレンス

デコードされた各フィールドの意味と重要性:

Subject(所有者)

証明書が発行された対象の識別情報。主な構成要素:CN(コモンネーム)、O(組織)、C(国)。

Issuer(発行者)

この証明書に署名した認証局(CA)。Subject と Issuer が一致する場合は自己署名証明書です。

Serial Number(シリアル番号)

発行 CA が割り当てる一意の番号。失効状態の確認(CRL / OCSP)に使われます。

Validity(有効期間:Not Before / Not After)

証明書が有効な時間帯。この窓の外ではブラウザやクライアントに拒否されます。

Public Key と鍵長

識別情報に紐づく公開鍵。現在の基準は RSA 2048 ビットまたは EC 256 ビット。RSA 1024 ビットは非推奨です。

Subject Alternative Names(SAN)

証明書がカバーするホスト名と IP のリスト。2015 年以降ブラウザは CN ではなく SAN で照合します——example.com の証明書に www.example.com を明示的に含めないと検証されません。

Signature Algorithm(署名アルゴリズム)

CA が証明書に署名したアルゴリズム。SHA-256 以上が必要。SHA-1 署名は最新のブラウザに拒否されます。

Fingerprint(SHA-256 フィンガープリント)

DER エンコードされた証明書全体のハッシュ。ピン留め(pinning)やシステム間の証明書比較に使われます。

よくある質問

どの証明書形式に対応していますか?

PEM エンコードされた証明書(-----BEGIN CERTIFICATE-----)に対応しています。DER や P7B 形式は現在サポートされていません。

証明書チェーンの検証は行いますか?

ツールは証明書の詳細をデコードして表示しますが、ルート CA に対する信頼チェーンの検証は行いません。

証明書署名要求(CSR)のデコードはできますか?

現在は X.509 証明書のみ対応しています。CSR のデコードは今後のアップデートで追加される予定です。

PEM、DER、CRT、PFX の違いは?

PEM は BEGIN/END ヘッダー付きの Base64 テキスト(拡張子 .pem、.crt、.cer)。DER は同じデータの生バイナリ ASN.1 形式です。CRT と CER はただの拡張子で、中身は PEM でも DER でもありえます。PFX/PKCS#12 はパスワードで保護されたバイナリの束で、秘密鍵を含めることができ、主に Windows で使われます。

デコードは正常なのに、ブラウザが証明書無効と言うのはなぜ?

デコードと検証は別物です。証明書は完璧にパースできても、有効期限切れ、ホスト名が SAN にない、チェーンが信頼されたルート CA に至らない、失効済み、などの理由で検証に失敗します。本ツールはデコード結果を表示します——まず有効期限と SAN を確認してください。

SSL 証明書をこのツールに貼り付けても安全ですか?

安全です。SSL 証明書は公開情報で、サイトの訪問者全員が受け取るものであり、機密は含まれていません。ただし秘密鍵は絶対にどこにも貼り付けないでください。本ツールは必要としませんし、使うこともできません。

証明書チェーンには何を含めるべきで、長さはどの程度が適切ですか?

提供されるチェーンには、リーフ証明書と、それを信頼されたルートに接続する中間 CA が含まれます。全体で通常 2〜3 枚の証明書です。ルート自体は送信すべきではありません。クライアントはすでに信頼ストアにルートを保持しているためです。中間証明書の欠落は、「自分のブラウザでは動作するのにモバイルでは失敗する」TLS エラーの最も一般的な原因です。一部のクライアントは中間証明書をキャッシュや推測で補完しますが、そうでないクライアントもあるためです。

有効期限や SANs を、障害が発生する前に確認するにはどうすればよいですか?

証明書をデコードして有効期間ブロックを確認します。notBefore が発行日、notAfter が有効期限です。notAfter の少なくとも 30 日前には更新を計画してください。SANs (Subject Alternative Names) には証明書がカバーするすべてのホスト名が列挙されます。CN が一致していても、このリストにない名前はブラウザで証明書名エラーを引き起こします。このツールでは両方のフィールドをその場でデコードして表示します。

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}