Docker внутри Nginx сервер не работает с HTTPS? - PullRequest
0 голосов
/ 30 марта 2020

У меня есть Ubuntu 18.04 , на котором я установил Nginx с сертификатом LetsEncrypt SSL .
Внутри приложения я запускал Node.js API с Docker.

Клиент -> Nginx (с SSL) -> Docker (SSL не t работа) -> Node.js app

Для работы я использую Docker -композит с определенным кодом:

services:
  db:
    image: postgres:9.6
    volumes:
      - 'database:/var/lib/postgresql/data'
    environment:
      - POSTGRES_DB=${DATABASE_NAME}
      - POSTGRES_USER=${DATABASE_USER}
      - POSTGRES_PASSWORD=${DATABASE_PASSWORD}
    ports:
      - '${DATABASE_PORT}:${DATABASE_PORT}'
    networks:
      - application_name

  modules:
    image: node:12.14.1
    working_dir: '/app'
    entrypoint: 'npm'
    volumes:
      - './package.json:/app/package.json'
      - 'node_modules:/app/node_modules'
    networks:
      - application_name
    env_file:
      - .env

  back:
    image: node:9.5.0
    working_dir: '/app'
    command: 'npm run start:app'
    ports:
      - '${APP_1_PORT}:${APP_1_PORT}'
      - '${APP_2_PORT}:${APP_2_PORT}'
    networks:
      - application_name
    volumes:
      - './docs/:/app/docs'
      - './src/:/app/src'
      - './package.json:/app/package.json'
      - './package-lock.json:/app/package-lock.json'
      - './tsconfig.json:/app/tsconfig.json'
      - 'node_modules:/app/node_modules'
    env_file:
      - .env

Nginx работает с HTTPS, но приложение Docker не (ERR_SSL_PROTOCOL_ERROR).

Я прочитал, что Docker не видит сертификаты, и это является причиной проблемы. Я видел решения, но на этих примерах Nginx был внутри Docker, а не наоборот. Как это можно решить для этого случая?

Заранее спасибо!

1 Ответ

0 голосов
/ 30 марта 2020

Если вы хотите, чтобы docker обрабатывал ssl-сертификат и завершение, вам необходимо предоставить SSL-сертификаты для экземпляров приложения docker (это приложение обратно).

Другой вариант - завершить SSL-соединение NGINX и пересылка HTTP-соединения docker приложениям.

...