CSR は Certificate Signing Request(証明書署名要求)の略で、認証局に証明書を発行してもらうための申請ファイルです。
サーバー側で秘密鍵とセットで生成し、CSR だけを認証局へ送ります。
秘密鍵は絶対に送らない
ここが最重要です。CSR には公開鍵と申請情報(ドメイン名、組織名など)が入っていますが、秘密鍵は含まれません。
| 中身 | 扱い | |
|---|---|---|
| 秘密鍵(key) | 復号と署名に使う鍵 | サーバーから出さない |
| CSR | 公開鍵+申請情報+自己署名 | 認証局へ送る |
| 証明書(crt) | 認証局が署名した公開鍵 | 公開してよい |
「認証局に秘密鍵を送ってしまった」は事故です。その鍵は破棄して作り直してください。
何を書くのか
必須なのは Common Name(CN)=証明書を使うドメイン名です。ただし現在のブラウザは CN ではなく SAN(Subject Alternative Name)を見るため、複数ドメインをまとめる場合は SAN の指定が必要です。
「証明書を入れたのにブラウザが名前不一致で警告する」場合、SAN に入っていないドメインでアクセスしていることがほとんどです。
DV / OV / EV で必要な情報が変わる
- DV(ドメイン認証):ドメインの管理権だけを確認。組織名の記入は不要
- OV / EV:組織の実在確認まで行う。登記情報と完全に一致する組織名・所在地が必要
OV 以上では、CSR に書いた組織名が登記と1文字でも違うと審査で止まります。取得前に正式表記を確認してください。
実務で見るポイント
- Let's Encrypt のような ACME 対応の認証局では、CSR の生成をクライアントが自動で行うため意識する場面は少ない
- 手動で作るのはロードバランサや機器へ入れる場合が中心
- 生成時のコマンドと使った秘密鍵の場所は必ず記録に残す。更新時に迷子になる