この記事をシェアする

ApacheのSSLをNginxに入れ替える手順

最近、ApacheのSSLをNignxに入れ替えることが多いのでまとめておきます。

ハイパフォーマンスHTTPサーバ Nginx入門

ハイパフォーマンスHTTPサーバ Nginx入門

Clement Nedelcu、長尾高弘

以下は、ApacheからNginxへHTTPS(SSL)を入れ替える手順です。

スポンサーリンク

既存のApacheの設定

既存のApache設定で確認しておきたいのは下記の部分

SSLCertificateFile    example.com.crt
SSLCertificateKeyFile example.com.key
SSLCACertificateFile  example.in.crt # 中間証明書

いずれのファイルも必要です。中間証明書を利用してる場合のみ、SSLCACertificateFileの設定があると思います。

あとパスフレーズも確認しておきましょう。

Nginx用の証明書を作成する

Nginxでは中間証明書が必要な場合、Apacheの用に別ファイルとして指定するのではなく、1つの証明書ファイルにまとめておきます。

cp example.com.crt example.com.crt.bak # バックアップ
cat example.in.crt >> example.com.crt # 中間証明書を追記

この様にして、1ファイルにまとめた証明書をNginxで利用します。

パスフレーズを削除する場合

HTTPS(SSL)サーバを起動する際に通常はKeyファイルに設定したパスフレーズを入力する必要があります。管理上このパスフレーズを入力せずに起動したい場合、以下のようにしてパスフレーズが解除されたKeyファイルを作成することができます。

openssl rsa -in example.com.key -out example.com.new.key
Enter pass phrase for example.com.key:[パスフレーズを入力]

“unable to load Private Key” と表示された場合、パスフレーズが間違っています。

パスフレーズを解除した鍵の扱いは厳重にしましょう。

Nginxの設定

ここまでで準備したファイルをもとにNginxを以下のように設定します。

server {
  listen 443;
  ssl on;
  ssl_certificate example.com.crt; # 中間証明書を含んだ証明書
  ssl_certificate_key example.com.new.key;
}

StartSSLでは、個人利用に限り、無料でSSL証明書を取得できるので、この機会に試してみてはいかがでしょうか。

個人的にはNginxをHTTPS(SSL)プロキシーサーバーとして立てて利用する形が、サーバ構成が複雑になっても融通が効くので、1台だけで完結する場合でも、443ポートでプロキシーサーバとして立ち上げて利用しています。

ハイパフォーマンスHTTPサーバ Nginx入門

ハイパフォーマンスHTTPサーバ Nginx入門

Clement Nedelcu、長尾高弘

スポンサーリンク

この記事をシェアする

著者をフォローする