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

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

新規登録して質問してみよう
ただいま回答率
85.49%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

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

Q&A

解決済

1回答

4908閲覧

EC2,apacheでポート443が開かず、https通信ができない

koguchi

総合スコア21

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

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

0グッド

0クリップ

投稿2020/10/04 13:59

編集2020/10/04 14:02

ポート443を開放し、https通信ができるようにしたい

インフラ学習のため、laravelで作成したサービスをAWSを使い公開しようとしています。
質問におかしな点や不足情報がございましたらご指摘お願いいたします。

現状

  • 常時SSL化は行っていない
  • 独自ドメインは未設定、パブリック IPv4 DNSで生成されたURLでの表示

上記のURLにアクセスするとhttp通信のため問題なく表示されます。
しかし、一部ページ(管理者のログインページや、ユーザー新規登録のコントローラーに処理が渡った際など)がhttps通信になり、以下が表示されページにアクセスできません。

このサイトにアクセスできません
ec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.com で接続が拒否されました。

AWSのコンソールからセキュリティグループの設定は行っており、画面では80と443共に解放されているように見えますが
プロンプトから確認すると443がclosedになっています。

イメージ説明

TeraTerm

1[centos@ip-xx-x-x-xx ~]$ nmap -sT [ipアドレス] 2 3Starting Nmap 6.40 ( http://nmap.org ) at 2020-10-04 12:21 UTC 4Nmap scan report for ec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.com (xx.xxx.xx.xx) 5Host is up (0.00047s latency). 6Not shown: 998 filtered ports 7PORT STATE SERVICE 880/tcp open http 9443/tcp closed https 10 11Nmap done: 1 IP address (1 host up) scanned in 4.54 seconds

初めはmysplに接続できていことが原因かと思ったのですが、$ php artisan db:seed であらかじめ登録してある情報はブレードファイルに表示できたため、ここは問題ないと判断して今に至ります。

回答して頂きたいこと

  • port 443を開放する方法、アドバイス
  • 常時SSL化等の設定は一切していないにも関わらず、一部ページがhttps通信になってしまう理由

試したこと

SELinuxは永続的に無効化済み
vi /etc/selinux/config
SELINUX=disabled

$ getenforce

Disabled

firewalldが入っていなかった為、インストールから
$ yum -y install firewalld
$ systemctl start firewalld
$ systemctl status firewalld
$ firewall-cmd --permanent --zone=public --add-service=http
$ firewall-cmd --permanent --zone=public --add-service=https
$ firewall-cmd --reload

< /etc/firewalld/zones/public.xml >

<?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="ssh"/> <service name="dhcpv6-client"/> <service name="http"/> <service name="https"/> <port protocol="tcp" port="443"/> //追加された </zone>

実行しても $ nmap -sT [ipアドレス] の結果は変わらず443がclosedのままです。

一日ここで詰まってしまっています。
知見のある方、ご指導よろしくお願いいたします。

補足情報

ハードOS:windows10 / サーバーOS:cnetOS7 / Apache:2.4.6 /

参考記事
ゲストOS(CentOS7)へSSH接続
CentOS7のhttpd設定で詰まった点

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

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

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

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

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

TaichiYanagiya

2020/10/04 14:57

mod_ssl はインストール、設定済みでしょうか?
koguchi

2020/10/05 08:27

調べる過程でmod_sslの存在を知りましたが、そこに原因があると考えなかった為インストールは行っていません。 現在証明書発行中で常時SSL化を行いますので、発行出来次第インストール、設定を行おうと考えています。
guest

回答1

0

ベストアンサー

セキュリティグループやfirewalldで443を許可しても、そもそもサーバ側で443ポートでlistenしていなければHTTPSで接続することはできません。
証明書を発行の上、Apacheで443番ポート経由でLaravelにアクセスできるようにしてください。
なお、後述の内容を考慮すると常時HTTPSにすることを推奨します。

常時SSL化等の設定は一切していないにも関わらず、一部ページがhttps通信になってしまう理由

これは推測ですが、恐らくLaravel側で明示的にHTTPSを使わせるようにしているのではないでしょうか。
管理者ログインページや新規登録のページでPOSTした情報がインターネットに平文で送信されると、通信を傍受された場合パスワード等の情報を直接盗まれてしまいます。
なので、この部分をHTTPで通信させることは本問題の対処としてやってはいけません。絶対にやめてください。

投稿2020/10/04 15:04

編集2020/10/06 02:04
yu_1985

総合スコア7433

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

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

koguchi

2020/10/05 08:57

ご回答ありがとうございます。 アドバイスの通り、 独自ドメインでの表示と常時https化を行っています。( Certificate Managerでの証明書の発行に時間がかかっており若干不安ですが…) なるほど、laravelのいずれかのファイルで何らかhttps通信の設定がされているという事ですね。 最後にもう一つ質問になってしまいますが、「質問への追記・修正」でmod_sslに関して記載いただいたのをきっかけに、https通信にはapache+mod_sslモジュールが必要と分かりました。 >>そもそもサーバ側で443ポートでlistenしていなければHTTPSで接続することはできません。 mod_sslはサーバー側で443ポートで待機するための準備や設定を行うもの、とぼんやり認識したのですが、この理解で大きな間違いはないでしょうか?
koguchi

2020/10/05 21:19

たった今、独自ドメインでの常時SSL化に成功しました。 結果的にmod_sslのインストールは不要だったようで、質問した問題は解決できました。 インフラは目に見えない分理解が難しいですね・・・今回調べる過程でかなり新しいことが知れました。 また一人では対処しきれないと判断した場合は質問させていただきますので、その際はよろしくお願いいたします。 同じ問題でたどり着いた方のために、参考サイトを置いておきます freenomで無料ドメイン取得 https://note.com/dafujii/n/n406f385651e2 独自ドメインで表示する https://avinton.com/academy/route53-dns-vhost/ 独自ドメインで常時SSL化 https://dev.classmethod.jp/articles/aws-web-server-https-for-beginner/
yu_1985

2020/10/06 02:04

補足ですがCertificate Managerの証明書を使ってALB側でHTTPSを終端させる場合、EC2インスタンス側でHTTPSを受け付ける設定は必要ないのでEC2インスタンスに対してはHTTPでだけ通信できればOKになります。 今回は構成にALBが入っていなかったのでApacheでHTTPSを受け付ける設定にするような回答にしました。
koguchi

2020/10/06 13:38

ALBを使用するとクライアントとALB間のみhttps通信になると理解しています。 その奥のALBとインスタンス間はaws網になり暗号化は行われないため、" EC2インスタンス側でHTTPSを受け付ける設定は必要ないのでEC2インスタンスに対してはHTTPでだけ通信できればOKになります。" という事ですね。 補足のおかげで、mod_sslが不要になった理由も理解できました。 ご丁寧にありがとうございました。
yu_1985

2020/10/06 14:47

少し違います。 > その奥のALBとインスタンス間はaws網になり暗号化は行われないため AWSの内部だから暗号化が行われないわけではなく、単にそうしなくても(大抵は)問題ないのと面倒なのでやる必要はない、というだけです。 ALB→EC2インスタンスの通信プロトコルとポートはターゲットグループで設定します。 EC2の側に証明書を配置してHTTPSを受け付けるように設定し、ターゲットグループでHTTPSを受け付けているポートにリクエストを送ってやればALB→EC2の通信もHTTPS化することができます。 ただ、単純にACMの他にEC2インスタンスに証明書を設定するのは面倒(※)ですし、前述の通り多くの場合はALBまでの通信が暗号化されていれば問題がないので、ALBに証明書を設定しALBからEC2への通信はHTTPで行っても大抵は特に問題ありません。 (特に上記のような説明なしに両方に証明書を設定することを記載しているブログは主にWordpressのHTTPS化を説明するブログにたくさんありますが、説明不足です。) ※証明書の二重管理になる上に、Webサーバの設定が煩雑になる。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問