Nginx 静的サイトへHTTPSでアクセスするときの設定

静的サイトへHTTPSでアクセスする場合のNginxの設定についてです。

次のような感じでHTTPSアクセスする場合の例です。

  • 変更前:http://www.example.com/index.html
  • 変更前:https://www.example.com/index.html
  • ドキュメントルート:/home/vagrant/www

環境

  • Ubuntu Server 14.04
  • NGINX 1.4.6

Nginxの設定

/etc/nginx/nginx.confをHTTPS用に設定します。

server {
  listen 443 ssl;
  server_name www.example.com;
  ssl_certificate /etc/nginx/conf.d/www.example.com.crt;
  ssl_certificate_key /etc/nginx/conf.d/www.example.com.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers HIGH:!aNULL:!MD5;
  location / {
    root /home/vagrant/www;
  }
}

httpsなので443(SSL)ポートで待ち受けます。

また、サーバー証明書も必要です。ssl_certificatessl_certificate_keyで指定するサーバー証明書は、事前に作成して置いておきます。自己署名でよいなら「OpenSSL 自己署名証明書(オレオレ証明書)を作成する」等を参照ください。

これでHTTPSでアクセスできるようになりました。

HTTPとHTTPSアクセスを共存する場合

listenを両方記載します。

server {
  listen 80;
  listen 443 ssl;
  ...
}

参考サイト