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

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

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

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

SSL

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

解決済

ポートは開いているのに外からhttps接続できない

sincek422
sincek422

総合スコア10

CentOS

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

SSL

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

2回答

0評価

1クリップ

4174閲覧

投稿2018/08/06 01:51

前提・実現したいこと

centos7.4 でWEBサーバ(nginx1.13.5)、APサーバ(golang1.10.3-revel0.19)、DBサーバをDockerコンテナで構築しWEBサーバにhttpsで接続後、連携するAPサーバの処理結果を返却したいのですがhttpsで接続できず困っております。
httpsで接続できない理由を調べる方法をご教授頂けますでしょうか。

■現在のDocker構成 [appusr@hoge dev]$ docker-compose ps Name Command State Ports ------------------------------------------------------------------------------------------- dev2_app_1 revel run mybooking Up 0.0.0.0:9000->9000/tcp dev2_db_1 docker-entrypoint.sh mysqld Up 3306/tcp dev2_web_1 nginx -g daemon off; Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp

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

DockerコンテナがあるCentos7上で、wget https://www.test.com/ とするとレスポンスが帰ってくるのですが、外部からwgetやブラウザでアクセスするとレスポンスが帰ってきません。

■centos7上でのwget結果 ※レスポンス200なので証明書の設定は問題ないように思えます [appusr@hoge dev2]$ wget https://www.test.com --2018-08-06 10:25:16-- https://www.test.com/ Resolving www.test.com (www.test.com)... 140.999.999.999 Connecting to www.test.com (www.test.com)|140.999.999.999|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 35 [text/html] Saving to: ‘index.html’

外からwgetやtelnetをすると、ポート443が開いていない旨のメッセージが出力されます。

■wgetの結果 $wget https://www.test.com --2018-08-03 16:57:14-- https://www.test.com/ www.test.com をDNSに問いあわせています... 140.999.999.999 www.test.com|140.999.999.999|:443 に接続しています... 失敗しました: 接続がタイムアウトしました. ■telnetの結果 C:\Users\tarou>telnet www.test.com 443 接続中: www.test.com...ホストへ接続できませんでした。 ポート番号 443: 接続に失敗しました

しかしながら、開いているポートを確認すると443はちゃんと開いています。

■nmap結果(ポートとサービスの確認) [appusr@hoge log]$ nmap 140.999.999.999 Starting Nmap 6.40 ( http://nmap.org ) at 2018-08-06 09:57 JST Stats: 0:00:00 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan Connect Scan Timing: About 1.00% done; ETC: 09:57 (0:00:00 remaining) Nmap scan report for 140-999-999-999.vpscloud.static.arena.ne.jp (140.999.999.999) Host is up (0.0014s latency). Not shown: 996 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp open https 9000/tcp open cslistener Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds ■lsof結果(ポートとプロセスの確認) [appusr@hoge log]$ sudo lsof -i:443 [sudo] password for appusr: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME docker-pr 11806 root 4u IPv6 4552081 0t0 TCP *:https (LISTEN)

webサーバの設定ファイルは以下のようになっています

nginx

server { listen 80; access_log /var/log/nginx/www.test.com/access_log; error_log /var/log/nginx/www.test.com/error_log; return 301 https://$host$request_uri; } server { listen 443; server_name www.test.com; access_log /var/log/nginx/www.test.com/ssl_access_log; error_log /var/log/nginx/www.test.com/ssl_error_log; ssl_certificate /etc/pki/tls/certs/www.test.com2018_combined.crt; ssl_certificate_key /etc/pki/tls/private/www.test.com2018.key; ssl on; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!EXPORT:!DES:!3DES:!MD5:!DSS"; location / { proxy_pass http://app:9000; } }

試したこと

centos7なのでfirewalldの設定が問題かと思い、
無効にしてhttps接続を確認しましたが、接続不可のままでした。
$systemctl stop firewalld
外からhttpsでアクセスできない理由、もしくは調べる方法をご教授頂けますでしょうか。

補足情報(FW/ツールのバージョンなど)

dockerとdocker-compose のバージョンは以下になっています。
[appusr@hoge dev]$ docker version
Client:
Version: 18.06.0-ce
API version: 1.38
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:08:18 2018
OS/Arch: linux/amd64
Experimental: false

Server:
Engine:
Version: 18.06.0-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:10:42 2018
OS/Arch: linux/amd64
Experimental: false

[appusr@hoge dev]$ docker-compose -v
docker-compose version 1.21.2, build a133471

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

namda

2018/08/06 02:25

http(80ポート)では表示できますか?
sincek422

2018/08/06 04:08

はい、httpでは表示できます
namda

2018/08/06 05:37

PHP、Ruby、Pythonなどインストールされてますか?されてる場合、一旦nginxを止めて443ポートでビルドインサーバを起動させ443ポートにアクセス出来るか見てみてください。それでアクセスできればnginxの設定に原因を絞れます。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

CentOS

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

SSL

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです