NginxでHTTP→HTTPSに自動でリダイレクトさせるよ!

目標:http://ドメイン名でリクエストが来た時https://ドメイン名に自動でリダイレクトさせるように設定する

前提:AWS+Rails+Unicorn+Nginx

※ご注意2022年現在下記のやり方はパフォーマンス的に非推奨となっています。学習用ならありかもですが・・・

非推奨でないAWSのALBを使う場合はこちらをどうぞ

1:まずはEC2にSSH接続する(各自SSH接続の方法は異なります)

ssh my-portfolio-key-rsa

2:nginxの設定を変更するためにまずは移動

cd /etc/nginx/conf.d

3:設定ファイルを書き込む(各自異なります)

sudo vim アプリ名.conf

if ($http_x_forwarded_proto = http) {
return 301 https://$server_name$request_uri;
}

上記を追加

4:Nginxを再起動するために移動

cd /var/www/rails/Tools/
                        ↑自分のアプリ名

5:nginxを再起動

sudo nginx -s reload

nginx: [error] open() "/run/nginx.pid" failed (2: No such file or directory)

上記のエラーが発生したので次のコマンドをします。

sudo touch /run/nginx.pid && service nginx restart

またエラー発生

Failed to restart nginx.service: The name org.freedesktop.PolicyKit1 was not provided by any .service files
sudo service nginx restart

こちらもsudoが必要だったようでNginxがやっと再起動できた。

http://ドメイン名で試したところ

https://ドメイン名に自動でリダイレクトしてくれるのを確認できた!

http://ドメイン名でアクセスしてhttps://IPアドレスになりエラーになる場合

前提:他のブラウザでhttp://ドメイン名でアクセスしてhttps://ドメイン名に自動でリダイレクトされるが、あるブラウザではhttps://IPアドレスになりエラーになる場合

GoogleChromeでなったときの対処法

①Googlechromeを開きショートカットキー⌘,で設定を開きます。

②セキュリティーとプライバシーをクリックして閲覧履歴データの削除をクリックします

③Cookieと他のサイトデータとキャッシュされた画像とファイルを選択してデータを削除をクリックします

自分の場合http://ドメイン名でアクセスしてhttps://ドメイン名に自動でリダイレクトしてくれるのを確認できました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です