こんにちは、マネージャーのジャックです。
本日は、OpenSSLでキーペアとCSRを作成する方法を執筆していこうと思います。
概要
とある案件で、SSLサーバ証明書を更新する必要があり、その作業ログを綴りたいと思います。
OpenSSLでキーペアとCSRを作成する方法
キーペアを作成する
まずはじめに、キーペアを作成します。キーペアを作成するには、下記コマンドを実行してください。実行するとパスワードの入力が求められますが、任意のパスワードを入力してください。1Passwordなどで自動生成すると良いでしょう。
$ openssl genrsa -des3 -out ssl.sample.com.encrypted.pem 2048 -sha256
CSRを作成する
キーペアの作成が完了したら、次はCSRの作成をおこないます。CSRの作成を行うには、下記コマンドを実行してください。
$ openssl req -new -key ssl.sample.com.encrypted.pem -out ssl.sample.com.csr
コマンドを実行すると、サーバ識別名(DN)情報の入力が求められるので、指示通りに入力しましょう。入力項目は下記となります。
- Country Name:
- State or Province Name:
- Locality Name:
- Organization Name:
- Organizational Unit Name:
- Common Name:
生成したCSRファイルの内容を確認するには、下記コマンドを実行します。
$ openssl req -noout -text -in ssl.sample.com.csr
SSLサーバ証明書の設定をおこなう
SSLサーバ証明書と中間証明書を取得する
CSRの発行が完了したら、SSLサーバ証明書と中間証明書を発行しましょう。SSLサーバ証明書を発行するには、RapidSSLやグローバルサインなど様々な認証局があるので、CSR取得後は各認証局のサイトの指示に従って、SSLサーバ証明書と中間証明書を取得してください。
私の環境では、取得したSSLサーバ証明書と中間証明書は、下記ファイル名で保存しました。
- ssl.sample.com.ca(中間証明書)
- ssl.sample.com.crt(SSLサーバ証明書)
nginxにてSSLサーバ証明書の設定する場合は、SSLサーバ証明書と中間証明書を結合する必要があるので、vi
などでファイルを開いて結合しましょう。下記のようなイメージです。
-----BEGIN CERTIFICATE-----
SSLサーバ証明書
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
中間証明書
-----END CERTIFICATE-----
秘密鍵のパスフレーズを解除する
nginx.conf
のssl_certificate_key
にパスフレーズなしの秘密鍵を指定する必要があるので、下記コマンドを実行してパスフレーズを解除します。
openssl rsa -in ssl.sample.com.encrypted.pem -out ssl.sample.com.pem
nginx.confの設定
nginx.confにSSLサーバ証明書と中間証明書を結合したファイルssl.sample.com.ca.crt
と秘密鍵ssl.sample.com.pem
を設定します。記述例を下記に示します。
server {
ssl on;
ssl_certificate /etc/nginx/ssl/sample.com/ssl.sample.com.ca.crt;
ssl_certificate_key /etc/nginx/ssl/sample.com/ssl.sample.com.pem;
}
記述が完了後、nginxを再起動してください。
おわりに
今回は、nginxでSSLサーバ証明書を更新する方法について紹介しました。SSLサーバ証明書の更新でお困りの方は、弊社にて更新代行いたしますのでお気軽にご連絡ください!
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。