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

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

ただいまの
回答率

89.52%

EC2にドメイン, SSLが適用されない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 327

jiro-sima

score 14

Route53で取得したドメインをEC2のインスタンスにhttpsで適用したいのですがターゲットグループにて
「これらのいずれのアベイラビリティーゾーンにも、正常なターゲットは含まれていません。リクエストはすべてのターゲットにルーティング中です。」と表示されます
セキュリティグループを一時的に全てのtcpに対して解放し、EC2はhttpに、ELBはhttpとhttpsに対してポートが解放されていることがnmapで確認できましたが依然上記のエラーが発生しています

よって原因はポートの解放状況以外にあると仮定して私の思い当たる事項として以下を確認しました
1.EC2のアベイラビリティーゾーンがap-northeast-1aである
2.ロードバランサーがアベイラビリティーゾーンap-northeast-1a, 及びEC2インスタンスが使用するサブネットを指定している
3.Route53のレコードセットのタイプ「A-IP4 アドレス」のエイリアス先にELBのIDが指定されている
4.Certificate Managerの証明書が状況:発行済み, 使用中?:はい, 検証状態:成功である
5.ロードバランサーのリスナーに
リスナーID HTTPS:443, SSL証明書 デフォルト証明書、ルール ターゲット:作成したターゲットグループ
が設定されている

なお、何かしら設定を変更した際はターゲットグループのインスタンスを登録解除し、再度登録しています

他に思い当たることがあれば些細なことでも構いませんのでご指摘ください

追記

回答頂く中で理解が進んだこと、依然解決していないことなど状況が変わってきたので全体を修正しました/2019/12/08

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • jiro-sima

    2019/12/05 21:35

    > Takumibooさん
    回答ありがとうございます
    reloadコマンドについてですが確証が無かった為再度解放からやり直しました
    するとfirewall-cmd --zone=public --add-port=443/tcp --permanentに対しては
    ALREADY_ENABLED: 443:tcp
    となり、既に解放されているようです
    なお、linuxは一旦切断した後、再度接続して確認しました
    しかしnmapで調べたところやはり443はclosedとなっています

    キャンセル

  • Takumiboo

    2019/12/05 21:45

    「firewall-cmd --reload」は実行したということでいいのですか?一度切断したところで再起動されたわけではないので、「firewall-cmd --reload」するまでは反映されませんが。

    キャンセル

  • jiro-sima

    2019/12/06 01:06

    >Takumibooさん
    はい、確認しました

    キャンセル

回答 2

+1

よくよく考えたらあまり意味のない質問をしていたことに気が付きました。

まず、ELB配下にEC2インスタンスを配置してHTTPS化したい場合、EC2インスタンスにHTTPSで通信ができる必要はありません。

なぜなら、ELBにACMで発行した証明書を設定するとELB上でSSLが終端されるからです。
ELBはそのリクエストを配下のEC2インスタンスに振り分けますが、配下のEC2インスタンスのどのポートに振り分けるかはターゲットグループで設定します(CLBの場合はLBの設定で)
もちろんELBでHTTPSの通信を受けて、それをEC2インスタンスの443番ポートに転送することもできるのですが、ELB→EC2の通信を暗号化する明確な目的がない限りは普通に80番ポートに転送すれば十分でしょう。

上記を踏まえて確認したいのですが、ターゲットグループの設定はどうしていますか?
デフォルトだとターゲットグループは80番ポートに転送するようになっていますが、ELB→EC2の80番ポートの通信が許可されていないように思えます。
(分かりづらいですが、明示的に内部ネットワークでの接続を許可しないと恐らくうまく行かないと思います。)
ただ、修正すべきはターゲットグループの設定ではなく、セキュリティグループでELBのセキュリティグループからの通信を443ではなく80を許可するように設定することかと思います。
EC2で443ポートを受ける必要はありません

またもう一つ。
一応質問の回答としてはこちらになりますかね。
上記の通りELBを使ってHTTPS化するなら特に必要はないのですが、EC2インスタンスの443ポートが開いてないのはそもそもEC2インスタンス上で443ポートを受けるような設定を入れてないのでは、という気がします。
WEBサーバとして使っているのはApacheやらnginxやらだと思いますけど、そこで証明書を設定して443ポートを受け付ける設定をしていないと443ポートが開いてないのは当然です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/12/06 06:03

    追記:ELBのセキュリティグループはhttp, https共に許可しています

    キャンセル

  • 2019/12/06 11:33

    > 追記:ELBのセキュリティグループはhttp, https共に許可しています

    ということは記載と違う設定をしているということでしょうか?
    「アクセス出来ない」とはどういう状態でしょうか。
    タイムアウトになるのか、エラーが出るのか。
    現象を正確に記載してください。

    リスナーと転送ルールの設定は正しいですか?
    設定内容を追記してください。

    キャンセル

  • 2019/12/07 03:47

    失礼しました 改めて現在の設定を記述します
    EC2インスタンスのセキュリティはhttpにおいて0.0.0.0/0, 全てのサブネットIP, VPCIPを許可しています
    ELBのセキュリティはhttpとhttpsにおいてそれぞれ0.0.0.0/0を許可しています
    エラーについては「"DNS名" で接続が拒否されました。」と表示されます
    ロードバランサーのリスナーにhttp(ポート80)が含まれていればApacheのテストページが表示されます
    あと試しにtcpの全てのポートを許可したセキュリティを両方に適用してみたのですがやはり変わりありませんでした

    キャンセル

check解決した方法

0

質問文に記した方法で確認するうち成功してしまいました
つまりどれかがマズかったのでしょうが...
釈然としませんが解決済みとさせて頂きます
回答頂いた方々に感謝します

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 89.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる