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

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

新規登録して質問してみよう
ただいま回答率
85.35%
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回答

1300閲覧

Docker+Nginx環境 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 04:30

Docker+Nginx環境にLet’sEncryptを導入したいです。

・現在の状況
https://ドメイン名 で接続するとブラウザアドレスバーに鍵マークが表示され
httpsが有効化されていることが確認できます。

https://ipアドレス:ポート番号 で接続すると、「保護されていない通信」と表示されます。

③①②ともに証明書の発行先はドメイン名です。

・現在の環境です。
ホストOS:CentOS7(さくらVPS)
Docker:nginx バージョン 1.15.6

・Nginxコンテナとホスト間ではホストの*.pemをマウントしています。

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 - "8000:80" 29 - "443:443" 30 volumes: 31 - ./config:/etc/nginx/conf.d 32 - /etc/letsencrypt/live/ドメイン名/fullchain.pem:/etc/nginx/letsencrypt/fullchain.pem 33 - /etc/letsencrypt/live/ドメイン名/privkey.pem:/etc/nginx/letsencrypt/privkey.pem

Dockerfile

1server { 2 listen 443 ssl; 3 listen [::]:443 ssl http2; 4 server_name ドメイン名; 5 ssl_certificate /etc/nginx/letsencrypt/fullchain.pem; 6 ssl_certificate_key /etc/nginx/letsencrypt/privkey.pem; 7 8 location / { 9 root /usr/share/nginx/html; 10 index index.html index.htm; 11 } 12}

・その他試したこと
①LetsEncryptが執行していないか確認。
→/etc/letsencrypt/live以下を削除して、再度certbot certonly --standalone -tを打鍵して
設定しました。

②ドメインが有効か確認。
お名前.comで契約期間が有効であることを確認しました。

③さくらVPSでドメイン登録されているか確認。
コントロールパネルから確認しました。

何故ipアドレス接続だけ「保護されていない通信」となってしまうのか分からず、
沼にハマっています・・。

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

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

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

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

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

guest

回答1

0

ベストアンサー

CAが署名したのは質問者が指定したドメインだけだからです。
CNにIPを指定した証明書も作ってその証明書用のディレクティブ設定しましょう。

補足追記

lets encryptだとIPでの証明書は作れないかもしれない

投稿2021/02/01 04:44

編集2021/02/01 04:47
hentaiman

総合スコア6426

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問