CSR デコーダー / CSR 確認

証明書署名要求を貼り付けると、サブジェクト、鍵、すべての代替名、すべての拡張まで、含まれるフィールドをすべて読み取れます。公的CAが適用するルールに照らして要求を確認し、秘密鍵が一致するかどうかも判定します。SSL証明書もここでデコードできます。

ブラウザー内で Web Crypto を使ってデコード · アップロードも保存もなし · CA/Browser Forum Baseline Requirements v2.3.1

このページの処理はすべてブラウザー内で行います。ネットワークパネルを開いて確かめてください。データを含むリクエストは1件もありません。

CSR とは何ですか

証明書署名要求(CSR)は、認証局に証明書を求める、署名付きの小さなファイルです。公開鍵、証明書に載せたい名前、そして秘密鍵で作った署名が入っています。

形式は PKCS#10 で、RFC 2986 に定められています。署名される部分に入っているのは4つだけです。バージョン番号、サブジェクト名、公開鍵を収めた SubjectPublicKeyInfo、そして属性の集まりです。これら全体に、中の公開鍵と対になる秘密鍵で署名するため、CSR は自己署名です。この署名が所有の証明になります。公開鍵は誰でも読めますが、それに対して検証が通る要求に署名できるのは、秘密鍵の持ち主だけです。

秘密鍵はファイルに入っておらず、入れてはいけません。CSR はメールで送っても、CAのWebフォームに貼り付けても、ここでデコードしても安全です。だからこのページは、何もどこにも送らずに、すべての処理をブラウザー内で行えます。

1つの要求を、バイト単位でRFC 2986 · PKCS#10

ファイル全体

  • 外枠4バイト
  • 署名される部分469バイト
  • 署名アルゴリズム15バイト
  • 署名そのもの261バイト

署名される部分の中身

  1. バージョン3バイト常にゼロ。形式が定める唯一のバージョンです
  2. サブジェクト名108バイトフォームに入力した識別名
  3. 公開鍵294バイトアルゴリズム、サイズ、鍵。認証局が必ず使う唯一のフィールドです
  4. 属性60バイト要求した代替名が運ばれる場所

秘密鍵が上の部分に署名します対応する秘密鍵を持っている証明 · 署名が対象とするのはその部分だけで、ファイル全体ではありません

このページが用意しているサンプルの要求で、サイズは 749バイト です。署名される部分には4つが入り、中の公開鍵と対になる秘密鍵がちょうどその部分に署名します。その結果が、最後の 261バイト です。
CSR デコードの結果画面:サブジェクト、鍵、代替名、CAルールの指摘を表示したデコード済みの証明書署名要求CSR デコードの結果画面:サブジェクト、鍵、代替名、CAルールの指摘を表示したデコード済みの証明書署名要求貼り付けまたはドロップCSR、証明書、公開鍵を、PEM、base64、16進ダンプ、ファイルのいずれでも。複数を同時に入れても構いません。判定公的CAがこの要求をどう扱うか(発行、変更、拒否)を、理由とともに表示します。名前証明書が対象とするすべての名前を、共通名との照合結果とともに表示します。鍵と署名アルゴリズム、サイズ、曲線、指数と、要求自身の署名が有効かどうかを表示します。鍵の照合秘密鍵または発行済みの証明書を追加すると、この要求に対応するものかどうかを確認できます。どちらもブラウザーの外には出ません。
分解した証明書署名要求です。判定、要求されている名前、その背後にある鍵、そしてお手元の鍵を照合する場所を表示します。番号を選ぶと、各部分に何が表示されているかを確認できます。

送信前に CSR を確認する方法

確認する価値があるのは3点です。名前が意図したものであること、署名が検証できること、そしてCAが適用するルールに違反していないことです。

上の欄に要求を貼り付けてください。サブジェクトを属性ごとに読み取り、すべてのサブジェクト代替名を一覧にし、鍵のアルゴリズムとサイズを表示したうえで、要求自身の署名を検証します。署名が検証できない要求は、作成後に編集、切り詰め、または破損しています。送信せず、作り直してください。

その次がルールです。認証局は CA/Browser Forum の Baseline Requirements を適用し、これに違反する要求は拒否されるか、黙って変更されます。このページの指摘は、CAが求めた内容を発行できない場合は要修正、発行はするがフィールドを削除または変更する場合は変更される、知っておく価値があるだけの場合は参考情報で表示します。

3つのチェックを、実行する順にCA/Browser Forum TLS BR 2.3.1
  1. 名前証明書が対象とするすべての名前と、共通名がその中にあるかどうか
  2. 署名ブラウザー自身の暗号機能で検証
  3. 認証局のルール1つずつ適用し、それぞれに根拠となる文書を示します
  • 送信できます要求にルール違反はありません
  • 拒否されますファイルは正常ですが、求めている内容が認められていません
  • 作り直してください署名が検証できない場合、作成後にファイルが編集、切り詰め、または正しくコピーされていません
最初の2つのチェックはファイル自体について、3つ目は認証局が認める内容についてです。要求は最初の2つに合格しても、拒否されることがあります。

CSR に入っているもの、そしてCAが実際に使うもの

CSR のなかで、公的CAが確実に使うフィールドは公開鍵1つです。残りの大半は、CAが自分で検証するか、上書きするか、コピーを禁じられています。

DigiCert は自社のドキュメントではっきり述べています。「DigiCert uses the public key embedded in the CSR to create your client certificate. All other fields in the CSR are ignored.」OV や EV 証明書では、組織名、所在地、国を載せる前にCA自身が検証する必要があり、入力した内容がそのまま信用されることはありません。有効期間の日付は要求から取られることはなく、Baseline Requirements のスケジュールに従います。

サブジェクトの2つのフィールドは、単に無視されるのではなく、禁止されています。organizationalUnitName(OU)は公的なTLS証明書に含めてはならず、CA/Browser Forum の投票案 SC047 により、2022年9月1日以降に発行された証明書には含められません。emailAddress は、ドメイン認証の証明書では一切認められません。共通名は認められていますが推奨されず、含める場合は、サブジェクト代替名のいずれかとまったく同じ値でなければなりません。この最後のルールが、このページが SAN リストにない共通名を指摘する理由です。

認証局が各フィールドをどう扱うかCA/Browser Forum TLS BR 2.3.1
要求の内容その後どうなるか理由
公開鍵SubjectPublicKeyInfo送ったとおりに使われる認証局があなたから確実に受け取る唯一のもの
代替名subjectAltName2.5.29.17送ったとおりに使われるCAは、どの名前も書き込む前に、あなたがその名前を管理していることを確認します
共通名CN2.5.4.3検証後、CAが書き込む推奨されません。含める場合は、代替名のいずれかとまったく同じでなければなりません
組織、市区町村、都道府県O, L, ST2.5.4.10検証後、CAが書き込む組織認証の証明書では、入力した内容ではなく、CA自身が検証した記録から取られます
国C2.5.4.6検証後、CAが書き込む認証レベルを問わず、記載できます
組織単位OU2.5.4.11一切認められない2022年9月1日以降、公的な証明書では禁止されています
メールアドレスemailAddress1.2.840.113549.1.9.1一切認められないドメイン認証の証明書では認められません
有効開始、有効終了notBefore, notAfter要求からは決して取られない認証局が従うスケジュールで決まり、要求では決まりません

「DigiCert uses the public key embedded in the CSR to create your client certificate. All other fields in the CSR are ignored.」

DigiCert, 同社自身のドキュメントより
人が頭を悩ませるフィールドと、それぞれの実際の価値です。鍵と名前は残り、組織単位はどう入力しても記載できず、ドメイン認証の証明書ではメールアドレスも記載できず、日付は最初からあなたが決められるものではありません。

CAが CSR を拒否する理由

拒否のほとんどは、次のいずれかに行き着きます。CAが認証できない名前、広すぎるワイルドカード、予約済みのIPアドレス、小さすぎる鍵、古すぎる署名ハッシュ、署名が検証できない要求です。

認証局は内部名に対して発行できません。内部名とは、「does not end with a Top-Level Domain registered in IANA's Root Zone Database」である名前のことです。server.local、intranet、ドットがまったくない単一ラベルの名前、架空のサフィックスはすべてこれに当たります。ラベルに使えるのは英字、数字、ハイフンだけなので、ホスト名のアンダースコアは拒否され、名前の末尾にドットを付けることもできません。ワイルドカードで置き換えられるのは左端のラベル全体だけで、パブリックサフィックスには使えません。*.example.com は有効ですが、*.co.uk は無効です。IPアドレスは含められますが、予約済みのものは不可です。10.0.0.0/8、192.168.0.0/16、127.0.0.1、fc00::/7 は使えません。

鍵については、Baseline Requirements は厳密です。8で割り切れる2048ビット以上のRSAモジュラス、または P-256、P-384、P-521 上の点のいずれかで、「no other algorithms or key sizes are permitted」とされています。CAは、素因数分解できる鍵も拒否しなければならず、「which can be factored within 100 rounds using Fermat's factorization method」のものも含まれます。このページは、要求内の鍵にこの検査を実行します。また、CSR 自身の署名ハッシュは証明書のものとは別ですが、Let's Encrypt は2022年に SHA-1 の自己署名を受け付けなくなったため、いまも SHA-1 で署名する古いツールの要求は拒否されます。

認証局が認証しない名前CA/Browser Forum TLS BR 2.3.1
  • server.local
    内部名公開ルートゾーンに存在するトップレベルドメインで終わっていないため、あなたのものだと証明できません
    拒否
  • intranet
    単一ラベルドットがまったくない名前も、同じ定義に当てはまります
    拒否
  • my_host.example.com
    アンダースコアラベルに使えるのは英字、数字、ハイフンだけです
    拒否
  • *.co.uk
    レジストリ全体に対するワイルドカードワイルドカードで置き換えられるのは左端のラベルで、パブリックサフィックスには使えません
    拒否
  • 192.168.1.10
    予約済みアドレスパブリックアドレスは認証できますが、プライベートや特別用途の範囲のものは決して認証できません
    拒否
  • example.com.
    末尾のドット空のルートラベルは書き出してはいけません
    拒否
6つの名前で、それぞれ違うルールに違反しています。どれも要求を送る前に見つけられた拒否です。

秘密鍵が CSR と一致するかどうかを確認するには

秘密鍵のファイルにはすでに公開鍵が含まれているため、照合は2つの公開鍵の比較になります。秘密は不要で、どこにも送る必要がありません。

上の鍵または証明書を照合を開き、要求の隣に鍵を追加してください。このページはファイルから公開鍵の部分だけを読み取ります(PKCS#8、PKCS#1、SEC1 の鍵に対応)。それを要求内の鍵と比較して結果を表示します。アップロードも保存もせず、鍵はこの欄から離れると消去されます。要求と、CAから返ってきた証明書の間でも同じ照合ができます。サーバーが起動を拒否する前に、「証明書と秘密鍵が一致しない」という問題を見つけられます。

鍵をどのWebページにも貼り付けたくない場合は、自分のマシンで2つのコマンドを実行すれば同じ答えが得られます。openssl req -in request.csr -pubkey -noout は要求から公開鍵を出力し、openssl pkey -in private.key -pubout は鍵から出力します。出力が同一なら一致しています。古い -modulus の形式が使えるのはRSA鍵だけで、-pubkey はすべての鍵の種類で使えます。

2つのファイル、1回の比較RFC 2986 · OpenSSL manual
お使いのブラウザー
  • 秘密鍵ファイルどこにも送ってはいけないファイル公開鍵の部分を読み出します
  • 要求認証局に送るファイル公開鍵がすでに含まれています

同じ鍵ですか

  • 一致します返ってきた証明書は、この鍵でインストールできます
  • 一致しませんこれは、Webサーバーが起動を拒否するときに報告する不一致です

この線を越えるものはありません · ネットワークを切っても、この比較はできますそれ以外の場所

または、自分のマシンで実行しますopenssl req -in request.csr -pubkey -nooutopenssl pkey -in private.key -pubout出力が同一なら一致しています
秘密鍵のファイルにはすでに公開鍵が含まれているため、2つの公開鍵を比べれば答えが出ます。そのために秘密を動かす必要はなく、実際に動かしません。

CSR、証明書、秘密鍵の違い

秘密鍵は秘密です。CSR は、その鍵を持っていると証明する要求です。証明書はCAが署名した回答で、3つのうち、もともと公開される前提なのはこれだけです。

3つのファイルは、紛らわしく似た名前で同じフォルダーに入っていることがよくあります。秘密鍵は -----BEGIN PRIVATE KEY----- または -----BEGIN RSA PRIVATE KEY----- で始まり、認証局を含め、誰にも送ってはいけません。証明書署名要求は -----BEGIN CERTIFICATE REQUEST----- で始まり、その鍵で署名されていて、送っても安全です。証明書は -----BEGIN CERTIFICATE----- で始まり、CAが署名していて、サイトの訪問者全員にどのみち送られます。

証明書が発行されたあと、要求はもう使いません。インストール、更新、失効のいずれにも不要です。保管しなければならないのは鍵で、安全に保管してください。上の欄に3つのどれを貼り付けても、このページがどれかを教えます。

3つのファイル、1つのフォルダー、紛らわしく似た名前RFC 7468
  • 秘密鍵秘密

    1行目-----BEGIN PRIVATE KEY-----広く使われているほかの形式-----BEGIN RSA PRIVATE KEY-----

    署名者
    なし。署名を行う側です
    見られる人
    あなただけ
    用途
    このサーバーが、証明書の発行先であることを証明する
  • 証明書署名要求公開

    1行目-----BEGIN CERTIFICATE REQUEST-----広く使われているほかの形式-----BEGIN NEW CERTIFICATE REQUEST-----

    署名者
    自分自身(秘密鍵で)
    見られる人
    あなたと認証局
    用途
    証明書を求め、その対象の鍵を持っていることを証明する
  • 証明書公開

    1行目-----BEGIN CERTIFICATE-----

    署名者
    認証局
    見られる人
    サイトのすべての訪問者
    用途
    この鍵がこれらの名前のものであることをブラウザーに伝える

.csr.pem.req.txt要求に拡張子を割り当てる標準はなく、これらはすべて使われています。このページは名前ではなく中身を読み取ります

3つのうち秘密なのは最初の1つだけです。最後の1つはどのみち訪問者全員に渡され、真ん中の1つは証明書が届いた時点で用済みになります。

CSR をオンラインでデコードしても安全ですか

CSR に秘密は含まれないため、どこでデコードしても害はありません。問題になるのは秘密鍵で、人が CSR と取り違えるのがそのファイルです。

このページのすべての処理は、お使いのブラウザー内で動きます。要求はページと一緒にダウンロードされたコードで解析され、署名はブラウザー自身の Web Crypto で検証され、データを含むリクエストはどのサーバーにも送られません。使いながらネットワークパネルで確認できます。これはページの作りによる性質で、信じてくださいとお願いする約束ではありません。

これが重要なのは、CSR の隣にあるファイルのためです。CA/Browser Forum 自身の定義は容赦がありません。「A Private Key is said to be compromised if its value has been disclosed to an unauthorized person, or an unauthorized person has had access to it.」悪用は必要なく、他人のサーバーに届いただけで該当します。2020年に DigiCert は、顧客が CSR と一緒に貼り付けた337個の秘密鍵を見つけ、関係するすべての証明書を失効させ、「by sending the private key to DigiCert along with the CSR, the customer has compromised the private key」と書きました。このページが、貼り付けられた秘密鍵を読み取った場合は、その旨を伝え、デコードを拒否し、何も保持しません。

ファイルが実際に行く先CA/Browser Forum TLS BR 2.3.1

このページ

お使いのブラウザー
  1. ファイルを読み込む
  2. ページと一緒に届いたコードで分解する
  3. 署名をブラウザー自身が検証する
  4. 結果を描画する

データを含むリクエストは出ていきません使いながら、ネットワークパネルを開いて確認できます

アップロードするページ

お使いのブラウザー

ファイルがアップロードされる…隣に貼り付けられたものと一緒に

他人のサーバー

そこに届いた秘密鍵は、それだけで漏えいしたことになります

「A Private Key is said to be compromised if its value has been disclosed to an unauthorized person, or an unauthorized person has had access to it.」

認証局が自分たち自身のために書いた定義

すでに起きています2020年、ある認証局が、要求の隣に貼り付けられた秘密鍵を337個見つけました関係するすべての証明書が失効されました

要求に秘密は含まれないため、どこでデコードしても害はありません。人が取り違えるファイルは別の話で、悪用がなくても、見られただけで被害になります。

RSA と ECDSA:CSR にはどちらの鍵を使うべきですか

ECDSA P-256 の鍵は、RSA 3072ビットと同じ強度で、サイズはずっと小さいため、より良いデフォルトです。RSA 2048 も引き続き、どこでも受け付けられます。

NIST は P-256 と RSA-3072 を同じ128ビットのセキュリティ強度としており、その表には RSA-4096 の行がそもそもありません。次の行は RSA-7680 で、192ビット、つまり P-384 が到達するレベルです。したがって4096ビットのRSA鍵は、3072ビットに対して文書化された利点がないまま、訪問者全員のハンドシェイクに余分な負荷をかけます。Baseline Requirements は P-521 も許可していますが、Let's Encrypt は拒否します。そのため P-521 の要求は、規則上は完全に有効でも、使うつもりだったCAで失敗することがあります。

Ed25519 は、アルゴリズムとしてどれほど優れていても、現在は公的なTLS証明書では使えません。Baseline Requirements が挙げているのはRSAと3種類のNIST曲線で、「no other algorithms or key sizes are permitted」と続きます。ポスト量子鍵も同様です。公的TLSで ML-DSA を許可するはずだった投票案は、2026年10月にマージされないままクローズされました。Ed25519 と ML-DSA は、SSH、署名、プライベートCAでは引き続き有用で、このページはそれらを使った要求も読み取ります。

同じ強度、まったく違うサイズNIST SP 800-57 Part 1 Rev 5, Table 2
強度RSA鍵曲線
セキュリティ強度 112ビット2,048ビット公的CA全般この強度に当たる曲線は、公的認証局が認めているものにはありません
セキュリティ強度 128ビット3,072ビット公的CA全般P-256公的CA全般
4,096ビット公的CA全般4,096ビットは表にまったくありません
セキュリティ強度 192ビット7,680ビット公的CA全般P-384公的CA全般
セキュリティ強度 256ビット15,360ビット公的CA全般P-521公的CA全般
  • RSA鍵
  • 曲線
  • 段階は1つのサイズから次のサイズへ飛び、間にある人気のサイズを飛ばしています。そのため、訪問者全員に余分なハンドシェイクの負荷をかけても、誰も文書化していない利点しか得られません
  • 受け付けるCALet's Encrypt

曲線は、同じ強度をわずかなバイト数で実現します

公表されている比較表に、鍵を実際に使えるかどうかを決める2点を加えました。規則が許可しているものと、使うつもりだった認証局が許可しているものです。

どのプラットフォームでも CSR を作る方法

OpenSSL のコマンド1つで、Linux、macOS、OpenSSL を入れた Windows に対応できます。IIS には certreq、macOS にはキーチェーンアクセスがあり、このサイトには鍵をどこにも送らないジェネレーターがあります。

OpenSSL では、openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr -subj "/CN=example.com" -addext "subjectAltName=DNS:example.com,DNS:www.example.com" で、鍵と要求を一度に作れます(-nodes は鍵を暗号化せずに残します。OpenSSL 3 では -noenc とも書けますが、macOS に組み込まれた LibreSSL が理解するのは -nodes だけです)。続けて openssl req -in example.com.csr -text -verify -noout で、内容の表示と検証ができます。Windows では、certreq -new request.inf request.req が .inf ファイルを読み、代替名は _continue_ 行を使って OID 2.5.29.17 の下に書きます。SAN= というキーはありません。Microsoft 自身のリファレンスページは、例が SHA-1 を使っていて、CAがいまは拒否すると警告しているため、ハッシュは自分で指定してください。

Mac では、キーチェーンアクセス > 証明書アシスタント > 認証局に証明書を要求で作成でき、鍵のサイズは「鍵ペア情報を指定」のチェックボックスの先にあります。または、当サイトのCSRジェネレーターを使うと、ブラウザーの Web Crypto で鍵を作り、サーバーに触れさせずに両方のファイルを渡します。CSR に拡張子を割り当てる標準はなく、.csr、.pem、.req、.txt がすべて使われています。このページは名前ではなく中身を読み取ります。

作る方法は4つOpenSSL · Microsoft Learn · Apple Support
  1. OpenSSLLinux、macOS、Windows

    1つのコマンドで鍵と要求を作りますopenssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr -subj "/CN=example.com" -addext "subjectAltName=DNS:example.com,DNS:www.example.com"その後、読み戻して自身の署名を検証しますopenssl req -in example.com.csr -text -verify -noout
  2. certreqWindows Server と IIS

    プレーンテキストのファイルを読みます。代替名は拡張のセクションに1行ずつ書きますcertreq -new request.inf request.req[Extensions] 2.5.29.17 = "{text}" _continue_ = "DNS=example.com&" _continue_ = "DNS=www.example.com"Microsoft 自身の例のページは、認証局がいまは拒否するハッシュを前提に書かれたままなので、ハッシュは自分で指定してください
  3. Keychain AccessmacOS

    Keychain Access › Certificate Assistant › Request a Certificate From a Certificate AuthorityMac は、これらのメニューを自分の言語で表示します鍵の種類とサイズは、鍵ペアを指定するボックスの先にありますRSA鍵は2048〜4096ビット。それより小さい鍵は、もう提供されません
  4. DNS Robot任意のブラウザー

    ブラウザー自身の暗号機能で鍵を作り、どちらのファイルもサーバーに触れさせずに渡しますジェネレーターを開く
1つの OpenSSL コマンドで、Linux、macOS、Windows のどれでも使えます。残りの3つは、そのコマンドが手元にないマシンのための方法です。

証明書はどのくらい有効ですか

今日発行される公的なTLS証明書は、200日を超えられません。これは2027年3月に100日、2029年3月に47日へ短縮されます。

このスケジュールは、2025年4月に採択された CA/Browser Forum の投票案 SC-081v3 によるもので、CSR では変えられません。有効期間が要求から決まることはないためです。各段階には2つの数字があり、SHOULD NOT はMUST NOTより1日短くなります。現在は199日と200日、2027年3月15日からは99日と100日、2029年3月15日からは46日と47日です。日数の数え方は「a day is measured as 86,400 seconds」で、次の1日のうち少しでも超えた分は、1日全体として数えます。

実際には、更新を自動化する必要があるということです。毎年 CSR を手作業で作っているなら、いまが ACME に移行する時期です。ACME ではクライアントが要求を作ってくれます。ちなみに、Baseline Requirements 自体が求めているのは「a certificate request in a form prescribed by the CA」だけですが、ACME では PKCS#10 が実際に必須です。

証明書が有効でいられる期間CA/Browser Forum TLS BR 2.3.1 §6.3.2
  1. 2026年3月15日より前現在の位置397日398日
  2. 2026年3月15日以降199日200日
  3. 2027年3月15日以降99日100日
  4. 2029年3月15日以降46日47日
  • スケジュール全体は、2025年4月11日に採択された1つの投票案 SC-081v3 によるものです
  • 1日は、ちょうど86,400秒として数えます 次の1日の一部でも、1日全体として数えます
  • 要求の内容は、これらを一切変えません
4つの段階があり、それぞれ2つの数字を持ちます。規則が推奨しない値と、禁じる値です。日付はすでに決まっており、だからこそ自動更新が唯一現実的な答えです。

生の ASN.1 でわかること

base64 の下では、CSR は DER でエンコードされたツリーです。デコーダーはこれをバイトオフセット付きで描き、知っているすべてのオブジェクト識別子に名前を付けます。これは openssl asn1parse の出力と同じです。

親しみやすい名前のないフィールドを見せるには、これが正直な方法です。デコードした項目の生の構造を開くと、CertificationRequestInfo、サブジェクトの相対識別名が1つずつ、SubjectPublicKeyInfo、attributes [0] の集合、そしてその中の extensionRequest 属性が見えます。この属性はオブジェクト識別子 1.2.840.113549.1.9.14 で、RFC 2986 ではなく RFC 2985 §5.4.2 で定義され、RFC 5280 の X.509 拡張をそのまま運んでいます。

そこで出会うもう1つの属性が challengePassword(1.2.840.113549.1.9.7)です。後で証明書を失効させるための共有の秘密として作られ、SCEP の登録ではいまも使われていますが、通常のWeb証明書の注文では何の役割もありません。このページは、あればそれを表示します。見えないフィールドは確認できないからです。

同じ要求を、バイトでRFC 2986 · RFC 2985 · RFC 5280
バイト位置構造サイズ
0SEQUENCE749バイト
4SEQUENCE469バイト
8INTEGER03バイト
11SEQUENCE108バイト
13SET13バイト
15SEQUENCE11バイト
17OBJECT IDENTIFIERC2.5.4.65バイト
22PrintableStringUS4バイト
26SET21バイト
28SEQUENCE19バイト
30OBJECT IDENTIFIERST2.5.4.85バイト
35UTF8StringCalifornia12バイト
47SET24バイト
49SEQUENCE22バイト
51OBJECT IDENTIFIERL2.5.4.75バイト
56UTF8StringSan Francisco15バイト
71SET22バイト
73SEQUENCE20バイト
75OBJECT IDENTIFIERO2.5.4.105バイト
80UTF8StringExample Inc13バイト
93SET26バイト
95SEQUENCE24バイト
97OBJECT IDENTIFIERCN2.5.4.35バイト
102UTF8Stringwww.example.com17バイト
119SEQUENCE294バイト
123SEQUENCE15バイト
125OBJECT IDENTIFIERrsaEncryption1.2.840.113549.1.1.111バイト
136NULL2バイト
138BIT STRING2,160ビット30 82 01 0a 02 82 01 01 00 c5 47 47 1d 26 1c bf275バイト
413[0]60バイト
415SEQUENCE58バイト
417OBJECT IDENTIFIERextensionRequest1.2.840.113549.1.9.1411バイト
428SET45バイト
430SEQUENCE43バイト
432SEQUENCE41バイト
434OBJECT IDENTIFIERSubject Alternative Name2.5.29.175バイト
439OCTET STRING32バイト30 1e 82 0f 77 77 77 2e 65 78 61 6d 70 6c 65 2e34バイト
473SEQUENCE15バイト
475OBJECT IDENTIFIERsha256WithRSAEncryption1.2.840.113549.1.1.1111バイト
486NULL2バイト
488BIT STRING2,048ビット00 57 41 c5 09 98 14 78 8c ee c3 61 d4 c0 e0 2d261バイト
  • ほかのものを含む
  • 値を含む
  • 位置で名前が決まる
  • 拡張を運ぶ属性

    1.2.840.113549.1.9.14要求そのものを定義する文書とは別の文書で定義されているため、代替名はサブジェクトの隣ではなく、属性の中を通ります
  • 出会うことのあるもう1つの属性この要求にはありません

    1.2.840.113549.1.9.7後で証明書の失効を求めるための共有の秘密で、デバイスがネットワークに自分で登録するときにもいまも使われます
サンプルの要求のすべてのバイトを、各オブジェクト識別子の名前付きで示しています。コマンドラインのデコーダーが出力する内容を、出力する代わりに描いたもので、1つのフィールドがどこで終わり、次がどこから始まるかが見えます。

CSR デコーダー:よくある質問

CSR をデコードするにはどうすればよいですか

上の欄に、-----BEGIN CERTIFICATE REQUEST----- と -----END CERTIFICATE REQUEST----- の行を含めて要求全体を貼り付けるか、ファイルをページにドロップしてください。貼り付けるとすぐにデコードされ、サブジェクト、公開鍵、すべてのサブジェクト代替名、要求されたすべての拡張、フィンガープリントが表示されます。base64 の本文だけ、16進ダンプ、バイナリの DER ファイルのアップロードにも対応しています。

この CSR デコーダーは安全ですか

はい。理由は2つあります。証明書署名要求には秘密が含まれず、もともと認証局に送るものなので、どこでデコードしても害はありません。そしてこのページは、処理をお使いのブラウザー内で行います。要求はページと一緒にダウンロードされたコードで解析され、どのサーバーにも何も送られません。誤って秘密鍵を貼り付けた場合は、その旨を伝え、デコードを拒否し、何も保持しません。

CSR が有効かどうかを確認するにはどうすればよいですか

ここでデコードして、判定を読んでください。このページは、送信者が対応する秘密鍵を持っていることを証明する要求自身の署名を確認し、そのうえで公的認証局が適用するルールを適用します。認証できない名前、広すぎるワイルドカード、予約済みのIPアドレス、小さすぎる鍵や素因数分解できる鍵、廃止されたサブジェクト項目、古い署名ハッシュです。各指摘には、CAが拒否するのか、変更するのか、参考として挙げるだけなのかが示されます。

認証局が CSR を拒否するのはなぜですか

よくある原因は、server.local のような内部名やラベルが1つのホスト名、ホスト名のアンダースコア、*.co.uk のようなパブリックサフィックスに対するワイルドカード、代替名にあるプライベートIPアドレス、2048ビット未満のRSA鍵、いまも SHA-1 で署名されている要求です。上で要求をデコードすると、これらはすべて、違反しているルールとともに明示されます。

秘密鍵が CSR と一致するかどうかを確認するにはどうすればよいですか

上の鍵または証明書を照合を使ってください。要求の隣に鍵を追加すると、このページが鍵ファイル内の公開鍵と要求内の公開鍵を、ブラウザー内で比較します。自分で実行することもできます。一致する場合、openssl req -in request.csr -pubkey -noout と openssl pkey -in private.key -pubout は同じ公開鍵を出力します。鍵と発行済みの証明書の間でも、同じ比較ができます。

SSL証明書もデコードできますか

はい。証明書を貼り付けると、証明書としてデコードされます。発行者とサブジェクト、シリアル番号、有効期間、すべての代替名、鍵用途と拡張鍵用途、認証局鍵識別子とサブジェクト鍵識別子、OCSP と CA Issuers の URL、証明書ポリシー、埋め込まれた証明書の透明性タイムスタンプが表示されます。証明書とその要求を一緒に貼り付けると、両者が鍵を共有しているかどうかも判定します。

認証局は CSR のどのフィールドを実際に使いますか

確実に使うのは1つ、公開鍵です。DigiCert 自身のドキュメントによると、残りは無視されます。OV や EV 証明書では、組織名と国を載せる前にCA自身が検証する必要があり、有効期間の日付は要求ではなく常に Baseline Requirements のスケジュールから決まります。2つのフィールドは、単に無視されるのではなく、公的なTLS証明書で禁止されています。OU と、ドメイン認証の証明書では emailAddress です。

共通名はいまも重要ですか

ほかの何かのコピーとしてだけです。ブラウザーは2017年以降、ホスト名の照合に共通名を使わず、サブジェクト代替名だけを使っています。Baseline Requirements は共通名を NOT RECOMMENDED とし、含める場合は「MUST contain exactly one entry that is one of the values contained in the Certificate's subjectAltName extension」と定めています。代替名のいずれにも含まれない共通名は拒否の対象で、このページはそれを指摘します。

複数のファイルを一度にデコードできますか

はい。要求、その証明書、中間証明書をまとめて貼り付けると、各ブロックが貼り付けた順に、それぞれのカードでデコードされます。1つのブロックが壊れていても、ほかは止まりません。貼り付けのどこかに秘密鍵があれば、その旨を表示してスキップし、デコードはしません。デコードするのは40ブロックまでで、それを超えた分は黙って捨てずに、数えて表示します。

CSR の challenge password とは何ですか

RFC 2985 に由来する任意の属性で、もとは証明書の失効を求めるときに伝える共有の秘密でした。デバイスが要求を許可されていることを証明する SCEP の登録では、いまも役割があります。通常のWeb証明書の注文では何の役割もなく、表示するツールが少ないフィールドなので、このページは要求に含まれていれば必ず表示します。

公的な証明書に Ed25519 の鍵を使えますか

現在は使えません。Baseline Requirements が許可しているのはRSAと P-256、P-384、P-521 の曲線で、そのうえで「no other algorithms or key sizes are permitted」と定めているため、Ed25519 の要求に対して発行する公的認証局はありません。SSH、署名、プライベートCAには適した鍵で、このデコーダーは Ed25519 と Ed448 の要求や、ポスト量子の ML-DSA 鍵も問題なく読み取ります。

いまの証明書の有効期間はどのくらいですか

今日発行される公的なTLS証明書は、2026年3月15日より前の398日から短縮され、200日を超えられません。CA/Browser Forum の投票案 SC-081v3 により、2027年3月15日に100日、2029年3月15日に47日になります。CSR はこれに影響せず、有効期間はCAが決めます。この長さでは更新の自動化が必須で、実際には ACME を使うことを意味します。

足りないものはありますか?機能や新しいツールを提案する