HOME > 技術ドキュメント > SSL証明書 CSR 作成・インストール手順(Apache / Nginx)
SSL証明書 CSR 作成・インストール手順(Apache / Nginx)
SSL証明書を CA(認証局)から取得するには、まずサーバーで秘密鍵と CSR(Certificate Signing Request)を作成し、 CA に提出して証明書の発行を受ける必要があります。 本記事では openssl コマンドによる CSR 生成から Apache / Nginx へのインストールまでを解説します。
CSR の流れ
| 手順 | 内容 |
|---|---|
| 1 | サーバーで秘密鍵(.key)を生成する |
| 2 | 秘密鍵をもとに CSR(.csr)を生成する |
| 3 | CSR を CA(または販売代理店)に提出する |
| 4 | ドメイン認証・組織認証を完了する |
| 5 | CA から証明書ファイルを受け取る |
| 6 | Apache / Nginx に証明書と秘密鍵を設定する |
秘密鍵の生成
RSA 2048 bit または 4096 bit を使います。楕円曲線暗号(EC)を使う場合は ecparam を使います。
# RSA 2048 bit openssl genrsa -out server.key 2048 # RSA 4096 bit(より強固) openssl genrsa -out server.key 4096
秘密鍵は厳重に管理し、外部に渡さないでください。パーミッションは 600 に設定します。
chmod 600 server.key
CSR の生成
openssl req -new -key server.key -out server.csr
実行すると各フィールドを対話形式で入力します。
| フィールド | 略称 | 説明・入力例 |
|---|---|---|
| Country Name | C | 国コード 2文字(日本は JP) |
| State or Province | ST | 都道府県(例: Tokyo) |
| Locality Name | L | 市区町村(例: Chiyoda-ku) |
| Organization Name | O | 組織名(OV/EV では登記名と一致させる) |
| Organizational Unit | OU | 部署名(省略可。CA によっては不要) |
| Common Name | CN | 証明書を発行するドメイン名(例: www.example.com) |
| Email Address | — | 省略可 |
Challenge password は空欄(Enter)で問題ありません。
CSR の内容確認
openssl req -text -noout -in server.csr
CN やドメイン名が正しいか提出前に必ず確認します。
証明書ファイルの確認
CA から受け取ったファイルを確認します。通常 server.crt(サーバー証明書)と中間証明書が届きます。
openssl x509 -text -noout -in server.crt | grep -E "Subject:|Not After"
Apache へのインストール
中間証明書はサーバー証明書と連結して SSLCertificateFile に指定します(Apache 2.4.8 以降)。
cat server.crt intermediate.crt > fullchain.crt
<VirtualHost *:443>
ServerName www.example.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/fullchain.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5
</VirtualHost>
sudo apachectl configtest sudo systemctl reload apache2
Nginx へのインストール
cat server.crt intermediate.crt > fullchain.pem
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/ssl/certs/fullchain.pem;
ssl_certificate_key /etc/ssl/private/server.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
}
sudo nginx -t sudo systemctl reload nginx
動作確認
# HTTPS 接続確認 curl -I https://www.example.com # 証明書の有効期限と CN を確認 openssl s_client -connect www.example.com:443 -servername www.example.com \ </dev/null 2>/dev/null | openssl x509 -noout -subject -dates
SSL証明書の購入はエスロジカルへ
CSR を作成したら、次は CA から証明書を発行してもらう必要があります。
エスロジカルはデジサート・サイバートラストの正規取扱代理店として、
CSR の提出から証明書の発行まで丁寧にサポートしています。
OV・EV 証明書の審査書類の準備もサポートします。
RapidSSL 3,960円/1年(税込)〜で SSL証明書を販売しています。審査サポート・インストール代行も対応しています。
SSL証明書の購入はこちら / SSL証明書とは? / インストール代行サービス
関連ドキュメント
Apache インストール(Ubuntu 24.04 LTS) — Apache のインストールと SSL 有効化
Nginx SSL/TLS 設定(Ubuntu 24.04 LTS) — Nginx での HTTPS 設定
Let's Encrypt vs 有料 SSL証明書 — DV・OV・EV の違いと使い分け
