【Rails】Certbot導入時にサイトが開かなくなった

開発環境
---
ruby 2.6.3
Rails 5.2.4.4
<br>

本番環境
---
AWS EC2 (Amazon Linux2)
<br>

今回のエラー
---
URLのhttpをhttpsに変更しようと思い、Certbotを導入していました。
Certbotを導入後、nginxを再起動し、URLを指定してサイトを開くと、以下の画像のように開けなくなってしまいました。
<img width="600px" alt="[スクリーンショット 2021-03-07 23.12.25.png]" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/942338/c37b3e08-66ef-244c-3c84-a2819d8e2701.png">

エラーが起きるまで
---
####``Certbotインストール時の設定``
#####①緊急時のメールアドレスを入力
 　→ Enterキー

```terminal.
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キー

```terminal.
-------------------------------------------------------------------------------
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キー

```terminal.
-------------------------------------------------------------------------------
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キー

```terminal.
 Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c'
to cancel):
```

#####⑤ HTTPへのアクセスをHTTPSに自動リダイレクトを聞かれる
 　→ 2 → Enterキー

```terminal.
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を再起動``

```terminal.
$ sudo systemctl restart nginx
```
　　
####``https://ドメイン でサイトを確認``
ここで当初のエラーが発生します。
URLを指定してサイトを開いても、「このページは動作していません」と言われてしまいます。
<br>

解決までの道のり
---
エラー画面の画像の通り、``「(サイトのドメイン名)でリダイレクトが繰り返し行われました。」``この文がヒントになりそうです。

#####①(EC2上)ログを確認する
ここで「301」という数字が含まれた文が何行も表示されます。
この「301」はリダイレクトを意味する数字です。
リダイレクトされ続けていてサイトを開けない状態に陥ってしまったようです。

```terminal.
$ sudo tail -f /var/log/access.log
```
　　

#####②nginxのconfファイルを確認
``今回のエラーの原因はこちらです！``
Certbotの導入時に自動追加された文章があります。
意味: ドメインにアクセスされた時に、301によりドメインへリダイレクトされる。
つまり、この文章があることにより永遠とリダイレクトがされてしまっていたのです。
そのため、この文章をコメントアウトをしたところ解決に繋がりました！

どうしてこうなってしまったのか原因については詳しく追求できておりませんが、もしかするとCertbot導入時の質問の答えを誤入力してしまっていたのかもしれません。


```terminal.
$ 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/ {
　　：
　　：

```
<br>

終わり
---
今回は以上になります。
私自身もプログラミング初心者ですが、同じ様な立場の方に少しでも参考になればと思っています。
また、もし内容に誤りなどがございましたら、ご指摘いただけますと幸いです。