質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

936閲覧

https化 ssl化 AWS

r.h

総合スコア3

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2022/01/02 06:28

前提・実現したいこと

サイトのアクセスをhttps通信で行えるようにしたい。

発生している問題・エラーメッセージ

ドメインの取得等全て
https://qiita.com/Yuki_Nagaoka/items/55ed1610cfc1f59398b1
上記サイトをメインで参考にして行ったところ最後の
sudo service nginx restart
を実行した際に

Redirecting to /bin/systemctl restart nginx.service Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details. とエラーが出てしまいました。

調べてみてsudo nginx -t でエラーの詳細がわかるとのことで実行すると

nginx: [emerg] "location" directive is not allowed here in /etc/nginx/nginx.conf:91 nginx: configuration file /etc/nginx/nginx.conf test failed

とでており /etc/nginx/nginx.confは参考サイトどおりに記述していたので原因がいまいちわかりません。

server { listen 80; proxy_set_header X-Forwarded-Proto $scheme; if ( $http_x_forwarded_proto != 'https' ) { return 301 https://$host$request_uri; } # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } server { listen 443 ssl; server_name ドメイン名; }

ご教授いただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

参考サイトのやり方はあまりよいやり方ではありませんし、色々間違っています。
ALBを使っているならALBにリダイレクトさせればよく、nginxには80番ポートだけでListenする設定をしておけばよいです。
もちろんRailsのforce_sslもfalseにしてください。
[新機能]Webサーバでの実装不要!ALBだけでリダイレクト出来るようになりました!

下記の部分は不要です。該当部分だけだと行数が合わないのでどこかわかりませんが、恐らくこれを変なところに書いてしまったからではないですか?

nginx

1 server { 2 listen 443 ssl; 3 server_name ドメイン名; 4 }

そもそも参考サイトではALBで443のリスナーの転送先に結局80番ポートで使っているターゲットグループを設定しているのでnginxでは443ポートをlistenしていても結局アクセスしていません。
ついでにいうと、この設定だとhttpsでnginxにアクセスしてもunicornにアクセスさせてないですし、サーバ側に証明書を設定してないのでいずれにしても誤った設定です。

投稿2022/01/02 06:42

yu_1985

総合スコア7447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2022/01/02 06:55

参考記事は他にも古いコマンドを使っていたり、そもそも先にALBを作成しているのに作ったALBを経由させずにEC2に直接アクセスさせたりとおかしな部分が散見されるので、参考にするのはちょっと微妙かなと思いますね…。 一応記事に指摘はしてみますがそもそもが古い記事なのでもう少し新しいもので参考にできるものがあればそちらを参考にしましょう。
r.h

2022/01/02 16:51

回答ありがとうございます! ご指摘通り直したところ改善されました! 当方学習し初めてまだ日が浅く色々な記事を参考にしていたら混乱してしまいました… ちなみになのですがnginxのエラーは出なくなったもののドメインでのアクセスができず503のエラーが返ってくるのですが上の記事を参考にして記述した際に503のエラー原因になりそうなところはありましたでしょうか…? アクセス数の制限で出るエラーだと書かれていますが原因が掴めずもし思い当たる節が見当たりましたらご指摘いただきたいです。
r.h

2022/01/02 17:17

すみませんroute53の値を変更しhttpでの接続はできるようになりました! https化するのに初学者でもわかりやすいものがあれば教えていただきたいです!
yu_1985

2022/01/02 17:31

どこで503のエラーが出てるのか特定しなければ、原因は特定できません。 ALBで503になっているのであればターゲットグループに正常なターゲットがないのが原因です。 https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-troubleshooting.html#http-503-issues nginxでエラーになってるならまた別なので切り分けが必要です。 > アクセス数の制限で出るエラーだと書かれて 全然違います。それはありうる可能性の一つでしかありません。 このサイトを参考にしたなら大嘘なので忘れてください。 https://www.cpi.ad.jp/column/column01/ ステータスコードについてちゃんと調べてみてください。 ALBを使うなら書いたやり方で十分です。 それよりもALBを経由してきちんと動かすようにしてみてください。 httpで正常に接続できるのであればあとはALBの設定だけです。 それはそれとして、ALBを使わない場合にnginxを使ってどうするのかについても一度やってみるといいでしょう。 そうするとALBがやっていてくれていることが何かがわかると思います。
r.h

2022/01/04 07:54

何から何までありがとうございます。 非常に助かりました。 ご教授いただいた内容参考にしっかり学習してみようと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問