CSRとは?
証明書署名要求(CSR)は、SSL/TLS証明書を取得するために認証局(CA)へ送るファイルです。CSRはサーバー上で秘密鍵と一緒に作成します。CSRには、対応する公開鍵、証明を受けたい身元情報(サブジェクト:コモンネーム、組織名、所在地)、そしてサブジェクト代替名(SAN)に記載するドメイン名が含まれており、秘密鍵を保有していることを示すためにその秘密鍵で署名されています。
秘密鍵はサーバーの外に出すものではなく、どこにも貼り付けてはいけません。一方、CSR自体には公開情報しか含まれていないため、デコードしても安全です。このCSR デコードツールは、CSRをブラウザ内で直接読み取ります。

CSRをデコードして内容を確認する方法
-----BEGIN CERTIFICATE REQUEST----- と -----END CERTIFICATE REQUEST----- を含むブロック全体をコピーし、上の入力欄に貼り付けます。
必要なドメイン(通常は example.com と www.example.com の両方)がすべてサブジェクト代替名に含まれているか、組織情報が正しいかを確認します。
鍵はRSA 2048ビット以上、またはECDSA P-256かP-384であること、そして署名が有効であることを確認します。署名が無効な場合は、CSRが改変されたか破損しています。
すべて問題なければ、認証局の申し込みフォームにCSRを貼り付けます。
Advertisement
CSRを提出する前に確認すべきこと
CSRに誤りがあると、証明書を再発行しなければなりません。まず次の点を確認しましょう。
すべてのドメイン名がSANに含まれていること。 ブラウザはChrome 58(2017年)以降コモンネームを無視しているため、SANに含まれていない名前は信頼されません。多くのCAはCNを自動的に追加しますが、念のため確認してください。
鍵の強度が十分であること。 CAは2048ビット未満のRSA鍵を受け付けません。RSA 2048〜4096ビットとECDSA P-256/P-384が標準的な選択肢です。
署名にSHA-256以上を使っていること。 SHA-1署名はもう受け付けられません。
組織情報が登録内容と一致していること(CAが審査するOV・EV証明書の場合)。部署名(OU)は空欄にしてください。CAは2022年に公開TLS証明書へのOUの記載をやめています。
新しい鍵であること。 更新のたびに新しい秘密鍵とCSRを生成しておけば、古い鍵が万一漏えいしても被害を抑えられます。
SSL証明書をデコードする方法
このツールはSSL証明書のデコードにもそのまま使えます。証明書(-----BEGIN CERTIFICATE-----)または証明書チェーン全体を貼り付けると、1枚ずつデコードされます。有効かどうかと残り日数、サブジェクトと発行者、SAN、鍵、キー使用法、シリアル番号、SHA-256フィンガープリントが表示され、CA証明書と自己署名証明書にはラベルが付きます。
公開中のWebサイトが実際に配信している証明書を、チェーンや有効期限も含めて確認するにはSSLチェッカーを使ってください。サイトにそもそもアクセスできるかを確かめるには、サイトダウンチェッカーをお試しください。
Advertisement
証明書はCSRと一致していますか?
証明書は、そのCSRの作成元となった秘密鍵と組み合わせなければ機能しません。更新後にサーバーでエラーが起きる原因としてよくあるのが、違う鍵で証明書をインストールしてしまうケースです。上の入力欄にCSRと証明書を一緒に貼り付けると、デコーダーが両者の公開鍵を比較します。一致すれば、その証明書はそのCSRの鍵に対して発行されたものです。
サーバー上では、OpenSSLで証明書、CSR、秘密鍵を比較できます。以下の3つのコマンドがすべて同じハッシュを出力すれば一致しています。
openssl x509 -in certificate.pem -noout -pubkey | openssl sha256
openssl req -in request.csr -noout -pubkey | openssl sha256
openssl pkey -in private.key -pubout | openssl sha256OpenSSLでCSRを作成・確認する
多くの人が必要とするコマンドです(OpenSSL 1.1.1以降)。
openssl req -new -newkey rsa:2048 -nodes \
-keyout example.key -out example.csr \
-subj "/CN=www.example.com" \
-addext "subjectAltName=DNS:www.example.com,DNS:example.com"openssl req -in example.csr -noout -text -verifyopenssl x509 -in certificate.pem -noout -textAdvertisement
CSRと証明書の各項目の意味
コモンネーム(CN)
www.example.com のようなメインのドメイン。互換性のために残されている項目で、ブラウザはSANを使います。
サブジェクト代替名(SAN)
証明書の対象となるすべてのドメイン(場合によってはIPアドレスも)。*.example.com のようなワイルドカードは、1階層分のサブドメインを対象にします。
組織名(O)、市区町村名(L)、都道府県名(ST)、国名(C)
ドメインの所有者を示す情報。OV・EV証明書ではCAが審査し、DV証明書では無視されます。
公開鍵
証明書がドメインに結び付ける鍵。対になる秘密鍵はサーバー上に保管されたままです。
有効期間
証明書が有効な期間の開始日と終了日。2026年3月以降、公開証明書の有効期間は最長200日となり、上限は2027年と2029年にさらに短縮されます。
フィンガープリント
証明書全体のSHA-256ハッシュ。証明書のピン留めや比較など、証明書を正確に識別するために使われます。