みなさんもちろん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/