【Rails】Certbot導入時にサイトが開かなくなった
開発環境
ruby 2.6.3
Rails 5.2.4.4
本番環境
AWS EC2 (Amazon Linux2)
今回のエラー
URLのhttpをhttpsに変更しようと思い、Certbotを導入していました。
Certbotを導入後、nginxを再起動し、URLを指定してサイトを開くと、以下の画像のように開けなくなってしまいました。
エラーが起きるまで
Certbotインストール時の設定
①緊急時のメールアドレスを入力
→ Enterキー
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):
②利用規約への同意
→ A(同意) → Enterキー
-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel:
③Electronic Frontier Foundationへのメール共有
→ N → Enterキー
-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
-------------------------------------------------------------------------------
(Y)es/(N)o:
④対象ドメインを確認し、数字を間まで区切りで入力
→ Enterキー
Please enter in your domain name(s) (comma and/or space separated) (Enter 'c'
to cancel):
⑤ HTTPへのアクセスをHTTPSに自動リダイレクトを聞かれる
→ 2 → Enterキー
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
nginxを再起動
$ sudo systemctl restart nginx
https://ドメイン でサイトを確認
ここで当初のエラーが発生します。
URLを指定してサイトを開いても、「このページは動作していません」と言われてしまいます。
解決までの道のり
エラー画面の画像の通り、「(サイトのドメイン名)でリダイレクトが繰り返し行われました。」
この文がヒントになりそうです。
①(EC2上)ログを確認する
ここで「301」という数字が含まれた文が何行も表示されます。
この「301」はリダイレクトを意味する数字です。
リダイレクトされ続けていてサイトを開けない状態に陥ってしまったようです。
$ sudo tail -f /var/log/access.log
②nginxのconfファイルを確認
今回のエラーの原因はこちらです!
Certbotの導入時に自動追加された文章があります。
意味: ドメインにアクセスされた時に、301によりドメインへリダイレクトされる。
つまり、この文章があることにより永遠とリダイレクトがされてしまっていたのです。
そのため、この文章をコメントアウトをしたところ解決に繋がりました!
どうしてこうなってしまったのか原因については詳しく追求できておりませんが、もしかするとCertbot導入時の質問の答えを誤入力してしまっていたのかもしれません。
$ sudo vi /etc/nginx/conf.d/SWEETS_meguri.conf
upstream puma {
server unix:///home/ec2-user/SWEETS_meguri/tmp/sockets/puma.sock;
}
server {
-------------------Certbotの導入により自動追加されたもの-------------------
if ($host = ドメイン名) {
return 301 https://$host$request_uri;
} # managed by Certbot
----------------------------------------------------------------------
server_name ドメイン名;
root /home/ec2-user/アプリ名/public;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
client_max_body_size 100M;
include /etc/nginx/mime.types;
location / {
proxy_pass http://puma;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_connect_timeout 30;
proxy_set_header X-FORWARDED_PROTO https;
}
location ^~ /assets/ {
:
:
終わり
今回は以上になります。
私自身もプログラミング初心者ですが、同じ様な立場の方に少しでも参考になればと思っています。
また、もし内容に誤りなどがございましたら、ご指摘いただけますと幸いです。
Author And Source
この問題について(【Rails】Certbot導入時にサイトが開かなくなった), 我々は、より多くの情報をここで見つけました https://qiita.com/__Wata16__/items/4b636d04d4ceae928571著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .