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

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

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

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

SSL

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

Docker

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

Q&A

解決済

2回答

6191閲覧

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

sincek422

総合スコア10

CentOS

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

SSL

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

Docker

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

0グッド

1クリップ

投稿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

1server { 2 listen 80; 3 access_log /var/log/nginx/www.test.com/access_log; 4 error_log /var/log/nginx/www.test.com/error_log; 5 6 return 301 https://$host$request_uri; 7} 8 9server { 10 listen 443; 11 server_name www.test.com; 12 13 access_log /var/log/nginx/www.test.com/ssl_access_log; 14 error_log /var/log/nginx/www.test.com/ssl_error_log; 15 16 ssl_certificate /etc/pki/tls/certs/www.test.com2018_combined.crt; 17 ssl_certificate_key /etc/pki/tls/private/www.test.com2018.key; 18 19 ssl on; 20 ssl_prefer_server_ciphers on; 21 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 22 ssl_ciphers "ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!EXPORT:!DES:!3DES:!MD5:!DSS"; 23 24 location / { 25 proxy_pass http://app:9000; 26 } 27}

試したこと

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

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

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

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

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

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

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の設定に原因を絞れます。
guest

回答2

0

自己解決

VPS会社をwebarenaから、さくらに変えたところ全く同じシステム構成で動作できました。

投稿2018/08/14 08:03

sincek422

総合スコア10

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

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

0

お使いのサーバの形態はどうなってるんでしょうか。
クラウドサーバなんかでは別付けでファイアウオールがつくものが多いようですが、そこらの設定も必要かと思われますが

#自宅サーバならルータの設定

投稿2018/08/06 02:22

y_waiwai

総合スコア87715

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

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

sincek422

2018/08/06 04:29

クラウドサーバを利用しています。ただサービス提供会社に問い合わせをしたところ、443ポートは特に制限していないとのことでした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問