🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
HTTPS

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

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

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

Q&A

解決済

1回答

989閲覧

nginx でhttp接続をhttpsにリターンできない。

Tepura

総合スコア5

HTTPS

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

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

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

0グッド

0クリップ

投稿2021/02/01 07:15

現在さくらVPSにDocker+nginxでhttp接続をhttpsにリターンしようとしています。

###作業環境
ホストOS:CentOS7
Docker nginxイメージ:1.15.6

###現在の状態(4で躓いています。)
http://IPアドレス:ポート番号で検索

https://IPアドレスに検索バーが推移。「保護されていない通信」となるが、
Welcome to Nginxと表示される。

https://IPアドレス:ポート番号で検索

https://IPアドレスに検索バーが推移。「保護されていない通信」となるが、
Welcome to Nginxと表示される。

https://ドメイン名/で検索

鍵マーク+画面表示される。

http://ドメイン名/で検索

このサイトにアクセスできません。と表示される。

###ファイアーウォールの設定ミス?
と思ってみましたが、http https共に設定されている。

[root@tk2-262-40537 config]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: dhcpv6-client http https ssh ports: XXX/tcp XXXXX/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

###nginx Docker設定ファイル情報です。

default.conf

1upstream backend { 2 server ap:9000; 3} 4 5server { 6 listen 80; 7 listen [::]:80; 8 server_name ドメイン名; 9 location / { 10 return 301 https://$host$request_uri; 11 } 12} 13 14server { 15 listen 443 ssl; 16 listen [::]:443 ssl http2; 17 server_name ドメイン名; 18 ssl_certificate /etc/nginx/letsencrypt/fullchain.pem; 19 ssl_certificate_key /etc/nginx/letsencrypt/privkey.pem; 20 21 location / { 22 root /usr/share/nginx/html; 23 index index.html index.htm; 24 } 25}

docker

1version: '3' 2services: 3 db: 4 image: mysql:5.7 5 volumes: 6 - ./mysql:/var/lib/mysql 7 environment: 8 MYSQL_ROOT_PASSWORD: root 9 MYSQL_DATABASE: test_db 10 MYSQL_USER: test 11 MYSQL_PASSWORD: test 12 TZ: 'Asia/Tokyo' 13 command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci 14 15 ap: 16 build: . 17 command: gunicorn -b:8080 djangopj.wsgi 18 expose: 19 - "9000" 20 volumes: 21 - ./code:/code 22 depends_on: 23 - db 24 25 proxy: 26 build: ./nginx/. 27 ports: 28 - "XXXX:XX" 29 - "XXX:XXX" 30 volumes: 31 - ./config:/etc/nginx/conf.d 32 - /etc/letsencrypt/live/apprentice-engineer.biz/fullchain.pem:/etc/nginx/letsencrypt/fullchain.pem 33 - /etc/letsencrypt/live/apprentice-engineer.biz/privkey.pem:/etc/nginx/letsencrypt/privkey.pem

最終的には、クライアントからの接続をnginx→gunicornで稼働させたいですが、
その前段階(クライアント⇔nginx)でうまくいっていません。。

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

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

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

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

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

yukky1201

2021/02/02 07:21

>http://IPアドレス:ポート番号で検索 ポート番号は80でしょうか。違うならば番号は明記してください。
guest

回答1

0

ベストアンサー

https://ドメイン名/で検索

鍵マーク+画面表示される。

http://ドメイン名/で検索

このサイトにアクセスできません。と表示される。

ブラウザは、https:// はポート 443 でアクセスしますが、 http://の場合はポート 80 で表示を試みます。省略されている docker-compose.yaml の ports の部分や、アプリケーション側で、ポート 80 でアクセス可能な設定が入っていない可能性があります。

おそらく現状でも Docker Compose 側では指定されているポートで通信可能ですので、 http://ドメイン名:ポート番号/ でアクセスを試みると表示されると思います。もしポート番号を入力したくないのであれば、ポート 80 で通信できるよう YAML ファイルなどの見直しが必要です。

投稿2021/04/09 10:26

zembutsu

総合スコア1584

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問