証明書デコーダー - X.509 PEM証明書をデコード オンライン
X.509 PEM証明書をデコードして検査します。サブジェクト、発行者、有効期間、拡張、SAN、フィンガープリントを確認 — 100%クライアントサイド。
よくある質問
証明書デコーダーとは何ですか?
証明書デコーダーは、X.509 PEMエンコードされたデジタル証明書を解析し、人間が読める形式で内容を表示するオンラインツールです。X.509証明書は、安全なHTTPS接続を確立するためにSSL/TLSで使用される標準形式です。ASN.1 DER(Distinguished Encoding Rules)でエンコードされ、Base64エンコーディングでPEM(Privacy-Enhanced Mail)形式にラップされます。このツールは、ドメイン名(Subject)、発行した認証局(Issuer)、有効期間、公開鍵の詳細、セキュリティ拡張などの重要な情報を抽出します。OpenSSLのインストールやコマンドラインツールの使用は不要です。
この証明書デコーダーの使い方は?
1. .pem、.crt、.cerファイルから、またはWebサーバーやブラウザからPEM証明書を取得します。2. PEMテキストを入力テキストエリアに貼り付けます。証明書は-----BEGIN CERTIFICATE-----で始まり、-----END CERTIFICATE-----で終わる必要があります。3. ツールが自動的に証明書をデコードし、結果を表示します。ボタンをクリックする必要はありません。4. 証明書サマリーカードでクイック概要(ドメイン、発行者、有効期限の状態)を確認します。5. 詳細、拡張、チェーンタブでより多くの情報を確認します。6. フィールドの横にあるコピーボタンをクリックして値をコピーします。7. 証明書チェーンの場合、すべての証明書を順番に貼り付けると、チェーン階層が表示されます。
証明書データは安全ですか?サーバーに送信されますか?
証明書データは100%安全で、ブラウザから外に出ることはありません。ASN.1デコード、拡張の抽出、フィンガープリントの計算など、すべての証明書解析はJavaScriptを使用して完全にクライアントサイドで実行されます。ツールはASN.1解析に@peculiar/x509ライブラリを使用し、フィンガープリント計算にブラウザのネイティブWeb Crypto APIを使用します。データはどのサーバーにも送信されず、分析ツールが証明書の内容を追跡することもなく、ブラウザタブのメモリ以外にデータが保存されることもありません。
PEMとDER形式の違いは何ですか?
DER(Distinguished Encoding Rules)は、ASN.1ルールに従ってX.509証明書データをエンコードするための生のバイナリ形式です。人間が読めないコンパクトなバイナリ表現です。PEM(Privacy-Enhanced Mail)は、DERデータをテキストでラップする形式です。DERバイトをBase64でエンコードし、-----BEGIN CERTIFICATE-----と-----END CERTIFICATE-----のマーカーを追加します。PEMはテキストとして安全にコピー&ペーストでき、設定ファイルに埋め込め、テキストベースのプロトコルで送信できるため、証明書交換で最も一般的な形式です。このツールはPEM形式を受け付けます。
証明書チェーンとは何ですか?このツールではどのように処理されますか?
証明書チェーン(信頼のチェーン)は、ウェブサイトのリーフ証明書を信頼されたルート認証局(CA)に結びつける証明書のシーケンスです。チェーンは通常以下で構成されます:1)リーフ証明書 — ドメイン名を含むサーバー自身の証明書、2)中間CA証明書 — ルートCAが署名権限を委任するために発行した証明書、3)ルートCA証明書 — 信頼された認証局の自己署名証明書。複数の証明書を含むPEMブロックを貼り付けると、このツールは各証明書を解析し、チェーン順に表示して、各証明書の位置(リーフ、中間、ルート)を識別します。
X.509 v3拡張とは何ですか?
X.509 v3拡張は、証明書に追加情報を伝えるオプションのフィールドです。一般的な拡張には:追加のドメイン名とIPのためのSubject Alternative Names(SAN)、許可された暗号操作のためのKey Usage(デジタル署名、鍵暗号化)、TLSサーバー認証やコード署名などの特定目的のためのExtended Key Usage、証明書がCAかどうかを示すBasic Constraints、証明書チェーン構築のためのAuthority/Subject Key Identifier、失効確認のためのCRL Distribution Pointsがあります。拡張はCritical(検証者が理解する必要がある)またはNon-Critical(情報提供用)に分類されます。
証明書フィンガープリントはどのように計算されますか?
証明書フィンガープリント(サムプリント)は、DERエンコードされた証明書バイト全体の暗号学的ハッシュです。証明書自体の一部ではなく、特定の証明書を参照するためのコンパクトな識別子として外部で計算されます。このツールはブラウザのWeb Crypto API(crypto.subtle.digest())を使用して、SHA-256とSHA-1の両方のフィンガープリントを計算します。結果はコロン区切りの16進数形式(例:AB:CD:EF:12:34:...)で表示されます。セキュリティにはSHA-256フィンガープリントが推奨され、SHA-1フィンガープリントは古いシステムとの互換性のために含まれています。
コード例
// Certificate Decoder - JavaScript Implementation
// Uses Web Crypto API for fingerprint computation
/**
* Extract the DER bytes from a PEM string
* @param {string} pem - PEM-encoded certificate
* @returns {ArrayBuffer} DER-encoded certificate bytes
*/
function pemToDer(pem) {
const base64 = pem
.replace(/-----BEGIN CERTIFICATE-----/g, '')
.replace(/-----END CERTIFICATE-----/g, '')
.replace(/\s/g, '');
const binary = atob(base64);
const bytes = new Uint8Array(binary.length);
for (let i = 0; i < binary.length; i++) {
bytes[i] = binary.charCodeAt(i);
}
return bytes.buffer;
}
/**
* Parse multiple certificates from a PEM chain
* @param {string} pemText - PEM text (may contain multiple certificates)
* @returns {string[]} Array of individual PEM certificate strings
*/
function extractPemBlocks(pemText) {
const regex = /-----BEGIN CERTIFICATE-----[\s\S]*?-----END CERTIFICATE-----/g;
return pemText.match(regex) || [];
}
/**
* Compute SHA-256 fingerprint of a DER-encoded certificate
* @param {ArrayBuffer} derBytes - DER-encoded certificate
* @returns {Promise<string>} Colon-separated hex fingerprint
*/
async function computeSha256Fingerprint(derBytes) {
const hashBuffer = await crypto.subtle.digest('SHA-256', derBytes);
const hashArray = Array.from(new Uint8Array(hashBuffer));
return hashArray
.map(b => b.toString(16).padStart(2, '0').toUpperCase())
.join(':');
}
// Usage with @peculiar/x509:
// import { X509Certificate } from '@peculiar/x509';
// const cert = new X509Certificate(pem);
// console.log('Subject:', cert.subject);
// console.log('Issuer:', cert.issuer);