Как запустить докер на локальной машине с ssl?

Добрый день!

Столкнулся со следующей задачей которую все никак не могу разрешить, а именно:
Не могу запустить докер на локальной машине с ssl сертификатом.

Пример docker-compose.yaml для proxy-nginx:
version: "2"
services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

networks:
  default:
    external:
      name: nginx-proxy


Пример docker-compose.yaml в приложении:
version: "3"
services:
  nginx:
    image: nginx:latest
    networks:
      - nginx-proxy
      - default
    expose:
      - 80
      - 443
    volumes:
      - /home/username/ssl:/etc/nginx/certs
      - ./docker/data/log:/var/log/nginx
      - ./docker/conf.d/nginx.conf:/etc/nginx/nginx.conf
      - ./:/var/www/html
    depends_on:
      - httpd
    environment:
      - VIRTUAL_HOST=test.loc

networks:
  nginx-proxy:
    external:
      name: nginx-proxy


Генерировал ssl сертификат используя команду из статьи:
openssl req -x509 -out ssl_test.crt -keyout ssl_test.key \
  -newkey rsa:2048 -nodes -sha256 \
  -subj '/CN=test.loc' -extensions EXT -config <( \
   printf "[dn]\nCN=test.loc\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:test.loc\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")


Конфиг ./docker/conf.d/nginx.conf:
http {
    ....
    server {
        listen 443 ssl;
        listen 80;
        server_name _;

        ssl_certificate /etc/nginx/certs/ssl_test.crt;
        ssl_certificate_key /etc/nginx/certs/ssl_test.key;

        index index.php index.html;
        .....
   }
}
  • Вопрос задан
  • 627 просмотров
Пригласить эксперта
Ответы на вопрос 1
@fubaro
Проблема в том, что вы кладете сертификаты не туда.
Если хотите использовать jwilder как front nginx, то именно он и будет принимать ssl коннект, то есть именно в него и нужно монтировать сертификаты. А так же правильно их назвать и прокинуть в проксируемый nginx нужные env vars.
Там же все подробно расписано https://github.com/jwilder/nginx-proxy#ssl-support
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы