Web無料相談会2018冬
Web無料相談会2018冬
2018.11.12

nginxでSSLサーバ証明書を更新する

Jack

こんにちは、マネージャーのジャックです。

本日は、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.confssl_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サーバ証明書の更新でお困りの方は、弊社にて更新代行いたしますのでお気軽にご連絡ください!