Apache + OpenSSL
Apache 環境での CSR 作成手順
OpenSSL コマンドを使った 2048bit RSA / ECC P-256 の CSR 作成方法を、2026年版の推奨設定でご案内します。
📋 対応バージョン
Apache 2.4 系 / OpenSSL 1.1.1 以降(推奨: OpenSSL 3.0 以降)。Linux(RHEL / Ubuntu / Debian / Alma / Rocky など)・macOS で動作します。
⚠️ 必ずお読みください
免責事項
本文書の内容によって生じた結果の影響について、弊社では一切の責任を負いかねますことをあらかじめご了承ください。本文書は基本的な構成を想定しています。お客様のシステム環境や構成、設定状況などにより、手順や画面表示が変わることがあります。
🛠️ 事前準備
- サーバに OpenSSL がインストールされていること(バージョン確認:
openssl version) - 作業用ディレクトリへの書き込み権限があること
- 運営組織情報を準備(OV/EV の場合のみ)
💡 ヒント:パスフレーズなし秘密鍵が推奨
かつてはパスフレーズ付き秘密鍵が一般的でしたが、現代ではパスフレーズなしが推奨されます。Apache 自動起動・再起動時にパスフレーズ入力が不要になり、運用が楽になります。秘密鍵ファイルのパーミッション管理(
chmod 600)で十分なセキュリティが担保されます。
📋 手順
-
OpenSSL のバージョン確認
まず OpenSSL のバージョンを確認します。
$ openssl version OpenSSL 3.0.13 30 Jan 2024 -
秘密鍵(Private Key)の生成
2048bit RSA 鍵を作成します(パスフレーズなしが現代の標準)。
RSA 2048bit(推奨)$ openssl genrsa -out example.com.key 2048より高速な ECC(楕円曲線暗号)も推奨されます。
ECC P-256(高速・軽量)$ openssl ecparam -genkey -name prime256v1 -out example.com.key -
秘密鍵のパーミッション設定
$ chmod 600 example.com.key $ ls -l example.com.key -rw------- 1 root root 1675 May 12 14:00 example.com.key🔒 重要:秘密鍵の取り扱い 秘密鍵は絶対に外部に漏らさないでください。Gitリポジトリへのコミット・メール送信・第三者への共有は厳禁です。漏洩時は速やかに証明書の再発行が必要です。 -
CSR(証明書署名要求)の生成
対話形式で組織情報を入力します。
$ openssl req -new -key example.com.key -out example.com.csr -sha256 Country Name (2 letter code) [AU]:JP State or Province Name (full name) []:Tokyo Locality Name (eg, city) []:Shibuya-ku Organization Name (eg, company) []:NIJIMO, INC. Organizational Unit Name (eg, section) []: Common Name (eg, server FQDN or YOUR name) []:example.com Email Address []: A challenge password []: An optional company name []:各項目の入力ルール:
項目 入力例 備考 Country Name JP2文字の国コード State or Province Tokyo都道府県(ローマ字) Locality Name Shibuya-ku市区町村(ローマ字) Organization Name NIJIMO, INC.OV/EVは第三者DBと一致必須 Common Name example.comFQDN。ワイルドカードは *.example.comその他項目 空欄 空欄推奨 -
CSR の内容確認
$ cat example.com.csr -----BEGIN CERTIFICATE REQUEST----- MIIChzCCAW8CAQAwQjELMAkGA1UEBhMCSlAxDjAMBgNVBAgMBVRva3lvMRMwEQYD ...(省略)... -----END CERTIFICATE REQUEST----- -
CSR を SSL ストアの管理画面に貼り付け
生成された CSR の中身を SSL ストアの管理画面の「CSR」欄に貼り付けます。サーバソフトウェアは「Apache」または「Apache以外」を選択。
📦 ワンライナー(コピペで使える)
RSA 2048bit ワンライナー(非対話)
openssl req -new -newkey rsa:2048 -nodes -sha256 \
-keyout example.com.key \
-out example.com.csr \
-subj "/C=JP/ST=Tokyo/L=Shibuya-ku/O=NIJIMO, INC./CN=example.com"
ECC P-256 ワンライナー(非対話)
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 -nodes -sha256 \
-keyout example.com.key \
-out example.com.csr \
-subj "/C=JP/ST=Tokyo/L=Shibuya-ku/O=NIJIMO, INC./CN=example.com"
⚡ ACME 自動更新を使うなら CSR 作成不要
certbot / acme.sh は CSR を自動生成します
ACME クライアントを使えば、CSR の手動生成・管理画面への貼り付け・証明書ファイルのアップロードなどがすべて自動化されます。47日ルール時代の運用には ACME がほぼ必須です。
- certbot 使い方(Linux定番)
- acme.sh 使い方
- ACME自動更新ガイド
❓ よくあるご質問
Q. パスフレーズ付き秘密鍵を使うべきですか?
現代ではパスフレーズなしが推奨されます。Apache 自動起動・再起動時にパスフレーズ入力プロンプトが出てしまい、無人運用ができなくなるためです。秘密鍵のパーミッションを 600 に設定すれば十分です。
Q. RSA と ECC、どちらを選ぶべき?
互換性最優先なら RSA 2048bit、性能優先なら ECC P-256。ECC は鍵長が短く、ハンドシェイクが軽量です。
Q. ワイルドカード証明書の CSR はどう作成しますか?
Common Name に *.example.com のように先頭にアスタリスクを付けて入力します。
Q. 秘密鍵を紛失してしまいました
新しい CSR を作成して再発行を申請してください。当店で販売している証明書は、同一コモンネームであれば無料・回数無制限で再発行可能です。詳しくは 再発行の手続き をご参照ください。