CSRジェネレーター
TLS証明書を取得するには、認証局に証明書署名要求を渡す必要があります:あなたのドメイン、公開鍵、対応する秘密鍵を保持している証明です。このジェネレーターは、指定したフィールドと鍵のサイズで、PEMのCSRとRSA秘密鍵をブラウザで生成します。秘密鍵はページから出ません。サーバー側には何も保存されないため、タブを閉じる前にダウンロードしてください。
CSRを生成する方法
-
1
コモンネーム(CN)を入力
証明書が保護する主要なホスト名、例:`www.example.com`。`*.example.com`のようなワイルドカードも許可されます。
-
2
組織の項目を入力(任意)
O(組織)、OU、L(市)、ST(州)、C(国コード)、任意のメールアドレス。ドメイン検証証明書はこれらのほとんどを無視します。OVとEV証明書はこれらを要求します。
-
3
鍵のサイズを選ぶ
RSA 2048(既定、普遍的に互換)またはより強力なRSA 3072とRSA 4096。
-
4
両方のファイルをダウンロード
`.csr`はCAへ、`.key`はサーバーに残します。鍵は安全に保管してください。失うとやり直しになります。
生成されるもの
2つのPEMファイル:
example.csr(公開、CAへ送る):
-----BEGIN CERTIFICATE REQUEST-----
MIIC...
-----END CERTIFICATE REQUEST-----
example.key(秘密、サーバーに残す):
-----BEGIN PRIVATE KEY-----
MIIE...
-----END PRIVATE KEY-----
CSRは保持の証明として秘密鍵で署名されます。CAが証明書を発行するとき、証明書の公開鍵はCSR内の鍵と一致し、それはサーバー上の秘密鍵と一致します。
このジェネレーターは、入力したコモンネームのみを含み、サブジェクト代替名(SAN)拡張のないCSRを作成します。証明書が複数のホスト名をカバーする必要がある場合は、認証局のツールを使用してください:Let’s EncryptなどのACMEクライアントはリクエストを自動で作成し、多くのCAのWebフォームは提出時に追加の名前を補います。
証明書の種類ごとのフィールド要件
| フィールド | DV証明書で必要? | OV/EV証明書で必要? |
|---|---|---|
| コモンネーム(CN) | はい | はい |
| 組織(O) | いいえ | はい、検証あり |
| 組織単位(OU) | 任意 | 任意 |
| 地域(市) | 任意 | はい、検証あり |
| 州/都道府県 | 任意 | はい、検証あり |
| 国(2文字) | 推奨 | はい、検証あり |
| メールアドレス | 任意 | 任意 |
Let’s Encryptとほとんどの自動DV発行者はコモンネームのみを確認します。OV/EV証明書を発行する企業のCAは、組織の詳細を事業記録と照合して検証します。
鍵のサイズの選択
| 鍵のサイズ | 長所 | 短所 |
|---|---|---|
| RSA 2048 | 普遍的な互換性、高速 | セキュリティの余裕が小さい |
| RSA 3072 | より強力、依然として普遍的 | 生成とハンドシェイクが遅い |
| RSA 4096 | 最強、依然として普遍的 | 最も遅く、最も大きい |
公開Webサーバーには、RSA 2048が安全な既定です。より大きなセキュリティの余裕が欲しく、遅い鍵生成とハンドシェイク、大きな証明書を受け入れられるなら、3072または4096ビットを選んでください。
CSRが間違いやすいところ
- 証明書がホスト名をカバーしていない:証明書が訪問した正確な名前をカバーしていないと、ブラウザは「NET::ERR_CERT_COMMON_NAME_INVALID」とエラーになります。コモンネームは
wwwを含む完全なホスト名と一致させる必要があります。このジェネレーターはCNのみの要求を作成するため、追加の名前が必要な場合は認証局のツールを使用してください。 - ワイルドカードの制限:ワイルドカード
*.example.comはサブドメインの1階層のみに一致します。api.v2.example.comには一致しません。 - 頂点とワイルドカードは別の名前:
*.example.comは裸のexample.comをカバーしません。証明書には両方を別々の名前として含める必要があります。 - IPアドレス:ほとんどの公開CAはIPアドレスの証明書をもう発行しません。ホスト名を使う必要があります。
生成後
- 秘密鍵を安全に保ちます。パーミッション0600、Webサーバーのユーザーが所有。
- CSRをCAのWebフォームまたはCLIツールに貼り付けます(ACME経由のLet’s Encryptは通常これを自動で処理します)。
- 署名された証明書(と中間チェーン)を受け取ります。
- 証明書チェーンと秘密鍵の両方をサーバーにインストールします。
- SSLチェッカーで検証します。
よくある質問
いいえ。鍵の生成は完全にブラウザ内で行われます。ページには鍵のサーバー保存がありません。鍵ファイルはすぐにダウンロードしてください。タブを閉じると消えます。
ほとんどの公開Webサイトでは、RSA 2048が安全な普遍的既定で、生成も高速です。より大きなセキュリティの余裕が欲しく、鍵生成とハンドシェイクが遅くなってもよければ、3072または4096ビットを選んでください。
はい。コモンネームに*.example.comを使います。ワイルドカードはサブドメインの1階層のみに一致すること、そしてほとんどのDV発行者がワイルドカード証明書に(HTTPではなく)DNS検証を要求することを覚えておいてください。
CSRは要求です。「これらのホスト名のためにこの公開鍵に署名してください」と言います。証明書は、署名後にCAが返すものです。CSRは短命でサーバーにはインストールされません。実際にTLSを提供するのは証明書です。
関連ツール
Atbash暗号エンコーダー
A-ZをZ-Aに対応させるヘブライ系の換字式暗号、Atbashでテキストをエンコードまたはデコードできます。同じ操作で暗号化と復号ができます。
Base64ファイルエンコーダー
あらゆるファイル(PDF、ZIP、画像、実行ファイル)をBase64テキストにエンコードし、JSON、メール、YAML、data URIへ埋め込めます。ブラウザ内でローカルに動作し、アップロードはありません。
AES暗号化 / 復号
OpenSSLのAES暗号方式で低リスクのテキストを暗号化・復号します。パスフレーズはSHA-256でハッシュされ、Base64出力はIVと暗号文です。
シーザー暗号エンコーダー
シーザー暗号でテキストを暗号化・復号します。1-25の任意シフトに対応し、ROT13を特殊ケースとして扱い、句読点と大文字小文字を保持します。
Base58エンコーダー・デコーダー
UTF-8テキストや16進バイト列をエンコードし、Bitcoin、Ripple、Flickrの各アルファベットでBase58を安全にデコードします。
bcryptジェネレーター
平文パスワードからbcrypt hashを生成します。cost factorは4から13まで調整でき、Laravel、Django、Node、PHPと互換性があります。