すべての SSL 記事 SSL と証明書

CSR(証明書署名要求)とは?

CSR(Certificate Signing Request)は、SSL証明書を申請するために認証局(CA)に送信するエンコードされたデータのブロックです。公開鍵とドメイン情報が含まれています。認証局はこれを使用して証明書を作成します。

CSRの中身

フィールド必須?
Common Name (CN)example.comはい
公開鍵RSAまたはECDSA公開鍵はい
鍵アルゴリズムECDSA P-256またはRSA 2048はい
組織名Your Company LLCDVではオプション
USDVではオプション
SANwww.example.comapi.example.comマルチドメイン用

DV証明書(Let’s Encryptなど)の場合、ドメイン名と公開鍵のみが重要です。組織フィールドは無視されます。

CSR生成の仕組み

  1. 鍵ペアを生成 — 秘密鍵と公開鍵
  2. CSRを構築 — 公開鍵 + ドメイン情報を標準化された形式(PKCS#10)にエンコード
  3. CSRに署名 — 秘密鍵で署名(対応する秘密鍵を持っていることを証明)
  4. 認証局に送信 — 認証局がドメイン所有権を検証し、CSRを使用して証明書を作成

秘密鍵はシステムを離れません。CSRには公開鍵のみが含まれます。

GetHTTPSはCSRを自動処理する

従来のツールでは、OpenSSLでCSRを手動生成する必要がありました:

# 手動の方法(GetHTTPSでは不要)
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
  -keyout privkey.pem -out csr.pem -nodes \
  -subj "/CN=example.com"

GetHTTPSでは、CSRを見たり触れたりする必要はありません。ツールが:

  1. ブラウザ内で鍵ペアを生成(Web Crypto API)
  2. ドメイン入力からCSRを自動構築
  3. ACMEフローの一部としてLet’s Encryptに送信
  4. 署名された証明書をダウンロード提供

CSRは内部ステップです — ドメインを入力するだけで証明書が得られます。

CSRを手動で生成する(必要な場合)

スタンドアロンのCSRが必要な場合(商用認証局向け、またはアップロードを要求するプラットフォーム向け):

ECDSA P-256(推奨)

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
  -keyout privkey.pem -out csr.pem -nodes \
  -subj "/CN=example.com"

RSA 2048

openssl req -new -newkey rsa:2048 \
  -keyout privkey.pem -out csr.pem -nodes \
  -subj "/CN=example.com"

複数ドメイン(SAN)あり

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
  -keyout privkey.pem -out csr.pem -nodes \
  -subj "/CN=example.com" \
  -addext "subjectAltName=DNS:example.com,DNS:www.example.com"

CSRの検証

openssl req -in csr.pem -noout -text

これにより、CSRに埋め込まれたドメイン名、鍵アルゴリズム、鍵サイズが表示されます。

ACMEプロトコルにおけるCSR

ACMEプロトコル(Let’s Encryptが使用)では、CSRはファイナライズステップで送信されます — ドメイン検証が通過した後です。認証局はCSRの公開鍵を使用して証明書を構築します。CSR形式はPKCS#10で、ACMEのJSONメッセージ内でbase64urlとしてエンコードされます。

GetHTTPSでは、このプロセス全体がWeb Crypto APIとpkijsライブラリを使用してJavaScriptで行われます。生のCSRバイトを見ることはありません。

よくある質問

CSRファイルを保管する必要がありますか?

いいえ。CSRは証明書のリクエスト中にのみ使用されます。認証局が証明書を発行した後、CSRは役目を終えます。秘密鍵証明書を保管してください — CSRは破棄できます。

更新時にCSRを再利用できますか?

技術的には可能ですが、更新ごとに新しい鍵ペアとCSRを生成する方が良いです。鍵のローテーションの原則に従い、鍵が侵害された場合の露出を制限します。

CSRと証明書の違いは何ですか?

CSRはリクエストです — 公開鍵を含み、認証局に署名を求めます。証明書は結果です — 公開鍵があなたのドメインに属するという認証局の署名付き声明です。CSRは入力、証明書は出力です。

ワイルドカードドメインのCSRを生成できますか?

はい。Common Nameに*.example.comを使用します:

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
  -keyout privkey.pem -out csr.pem -nodes \
  -subj "/CN=*.example.com"

GetHTTPSではCSRを手動生成する必要はありません — ドメインとして*.example.comを入力すれば、GetHTTPSがCSRを自動処理します。

CSRの「key usage」とは何ですか?

鍵用途の拡張は証明書の使用目的を指定します — TLS証明書では通常「Digital Signature」と「Key Encipherment」です。GetHTTPSとほとんどのACMEクライアントはこれらをデフォルトで正しく設定します。商用認証局の特定の要件に対して手動でCSRを生成する場合のみ、鍵用途を気にする必要があります。

関連記事

SSL と証明書 2026-05-07
ECC vs RSA証明書:どちらを選ぶべきか?
ECC(ECDSA P-256)とRSA(2048/4096ビット)の証明書を比較。ECC鍵はより小さく高速です。GetHTTPSがECCをデフォルトにする理由とRSAが依然として意味を持つ場合を解説します。
はじめに 2026-05-08
無料SSL証明書の取得方法(ステップバイステップガイド)
Let's Encryptから5分で無料のSSL証明書を取得。ソフトウェアのインストール不要、アカウント作成不要。4つの方法、両方のチャレンジタイプ、6つのプラットフォームへのインストール、トラブルシューティングを網羅した完全ガイドです。
SSL と証明書 2026-05-07
SSL/TLSの仕組み:TLSハンドシェイクの解説
TLSハンドシェイクのビジュアルウォークスルー。ブラウザとサーバーがミリ秒で暗号化接続を確立する方法を解説。TLS 1.2、TLS 1.3、セッション再開、前方秘匿性をカバーします。
ブラウザで無料 SSL 証明書を取得
インストール不要、アカウント不要。秘密鍵は常にデバイスに残ります。
証明書を取得