LoginSignup
26
20

More than 3 years have passed since last update.

Nginxでリクエストを強制的にhttps(TLS)にリダイレクトする

Last updated at Posted at 2016-07-20

みなさんもちろんhttps使ってますよね?
あらゆるサイトでhttps対応が求められる、っていうか必須な時代になってきました。

Let's Encryptなど無料証明書も出てきましたし、
個人が趣味で作ってるサイトのために証明書買うのは。。なんて言い訳も通用しませんね。
つべこべ言わず面倒くさがらず、個人情報入力ページだけ、なんてケチなことを言わずに全ページで強制的にhttps対応しちゃいましょう。

httpで来たリクエストをhttpsにリダイレクト

nginxの設定ファイルに以下を追記するだけ

server {
    # httpをhttpsにリダイレクト
    listen 80;
    return 301 https://$host$request_uri;
}

SSLv3を無効化してTLSだけを受け入れる

一般にhttpsの時に「SSL」を使うなんて言われますが、SSLv3には脆弱性があるので無効化してしまった方が良いです。
モダンブラウザならまず間違いなくTLSに対応してますので、TLSのみを受け付けるようにしましょう。

server {
    listen       443 ssl;
    # SSLを無効化してTLSのみ受け付ける 
    ssl_protocols  TLSv1.2 TLSv1.3;
    server_name  hogehoge.com;
}

上記2つの設定を追記したら必ずNginxを再起動します。

sudo service nginx restart

以上です。

参考

以下のサイトにホスト名を入力すると、SSLのバージョンや設定などを診断して、問題がある場合は解決策も提示してくれます。
https://www.ssllabs.com/ssltest/

26
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
20