本文へスキップ
重要 SSL/TLS証明書 47日間ルール正式決定 — ACME自動更新の導入を推奨しております。 Phase 2(100日へ短縮)まで 298日
300,000枚 累計発行
17,206社 利用中
19年 運営
24時間365日 自動発行

サポート › CSR の作成方法 › Apache + OpenSSL

AApache + 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)で十分なセキュリティが担保されます。

📋 手順

  1. OpenSSL のバージョン確認

    まず OpenSSL がインストールされているか、バージョンを確認します。

    $ openssl version
    OpenSSL 3.0.13 30 Jan 2024
    ⚠️ OpenSSL 1.1.1 未満の場合は要アップグレード OpenSSL 1.0.x 系は既にサポート終了。TLS 1.3 対応のためにも 1.1.1 以降、できれば 3.0 以降を使用してください。
  2. 秘密鍵(Private Key)の生成

    2048bit RSA 鍵を作成します。パスフレーズなしで作成するのが現代の標準です。

    RSA 2048bit(推奨)
    # RSA 2048bit、パスフレーズなし
    $ openssl genrsa -out example.com.key 2048

    より高速な ECC(楕円曲線暗号)も推奨されます。鍵長が短く、ハンドシェイクが軽量です。

    ECC P-256(高速・軽量)
    # ECC P-256(prime256v1)
    $ openssl ecparam -genkey -name prime256v1 -out example.com.key
    ✅ 推奨設定(2026年版)
    • RSA 2048bit 以上(標準)
    • ECC P-256 / P-384(高速・大規模サイト向け)
    • パスフレーズなし(運用性重視)
  3. 秘密鍵のパーミッション設定

    秘密鍵ファイルは、所有者のみが読み取り可能に設定します。

    $ chmod 600 example.com.key
    $ ls -l example.com.key
    -rw------- 1 root root 1675 May 12 14:00 example.com.key
    🔒 重要:秘密鍵の取り扱い 秘密鍵は絶対に外部に漏らさないでください。Gitリポジトリへのコミット・メール送信・第三者への共有は厳禁です。漏洩時は速やかに証明書の再発行が必要です。
  4. CSR(証明書署名要求)の生成

    秘密鍵から CSR を生成します。対話形式で組織情報を入力します。

    対話形式で生成
    $ openssl req -new -key example.com.key -out example.com.csr -sha256
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    -----
    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 []:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:

    各項目の入力ルール:

    項目入力例備考
    Country NameJP2文字の国コード(半角大文字)
    State or ProvinceTokyo都道府県名(ローマ字)
    Locality NameShibuya-ku市区町村(ローマ字)
    Organization NameNIJIMO, INC.正式英語組織名。OV/EVの場合、iタウンページなど第三者データベースに登録されている情報と一致させてください
    Organizational Unit空欄でOK部署名。空欄でも問題ありません
    Common Nameexample.com証明書を導入するサイトのFQDN。ワイルドカードは *.example.com のように先頭にアスタリスク
    Email Address空欄でOK空欄推奨
    A challenge password空欄でOK空欄推奨
    An optional company name空欄でOK空欄推奨
  5. CSR の内容確認

    生成された CSR を確認します。

    $ cat example.com.csr
    -----BEGIN CERTIFICATE REQUEST-----
    MIIChzCCAW8CAQAwQjELMAkGA1UEBhMCSlAxDjAMBgNVBAgMBVRva3lvMRMwEQYD
    VQQHDApTaGlidXlhLWt1MQ4wDAYDVQQKDAVUZXN0MIIBIjANBgkqhkiG9w0BAQEF
    ...(省略)...
    -----END CERTIFICATE REQUEST-----

    内容を人間が読める形式で確認したい場合:

    $ openssl req -in example.com.csr -noout -text
    Certificate Request:
        Data:
            Version: 1 (0x0)
            Subject: C=JP, ST=Tokyo, L=Shibuya-ku, O=NIJIMO, INC., CN=example.com
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (2048 bit)
    ...
  6. CSR を SSL ストアの管理画面に貼り付け

    生成された example.com.csr の中身(-----BEGIN CERTIFICATE REQUEST----- から -----END CERTIFICATE REQUEST----- まで全て)を SSL ストアの管理画面の「CSR」欄に貼り付けます。

    💡 サーバソフトウェアの選択 管理画面でサーバソフトウェアを選択する場面では、「Apache」または「Apache以外」を選択してください(DigiCert系商品では「Microsoft IIS以外」を選択)。

📦 ワンライナー(コピペで使える)

すべての手順をまとめたワンライナーです。組織情報の部分だけ修正してご利用ください。

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 がほぼ必須です。

❓ よくあるご質問

Q. パスフレーズ付き秘密鍵を使うべきですか?

現代では パスフレーズなしが推奨されます。理由は、Apache 自動起動・再起動時にパスフレーズ入力プロンプトが出てしまい、無人運用ができなくなるためです。秘密鍵ファイルのパーミッションを 600(所有者のみ読み取り可能)に設定すれば十分なセキュリティが担保されます。

Q. RSA と ECC、どちらを選ぶべき?

互換性最優先なら RSA 2048bit、性能優先なら ECC P-256。ECC は鍵長が短く、ハンドシェイクが軽量で、大規模サイトでは特に効果的です。両方の証明書をデュアル運用することも可能ですが、現代の主要ブラウザはどちらも問題なくサポートしているため、片方で十分です。

Q. ワイルドカード証明書の CSR はどう作成しますか?

Common Name に *.example.com のように先頭にアスタリスクを付けて入力します。それ以外は通常のCSR作成と同じです。

Q. マルチドメイン証明書の CSR はどう作成しますか?

Common Name にはプライマリFQDNのみを入力します。追加FQDN(SANs)は SSL ストアの管理画面で別途登録するため、CSR には含めません。

Q. 秘密鍵を紛失してしまいました

新しい CSR を作成して再発行を申請してください。当店で販売している証明書は、同一コモンネームであれば無料・回数無制限で再発行可能です。再発行については 再発行の手続き をご参照ください。