Сертификаты AWS / SSL для Nginx настройки внутри docker контейнера - PullRequest
1 голос
/ 17 января 2020

У меня есть докеризованное приложение django (cookiecutter), и я хочу настроить nginx внутри контейнера docker, чтобы я мог развернуть его в экземпляре EC2. Для этого мне нужны ssl сертификаты.

Процесс получения ssl сертификата с Let's Encrypt, как это рекомендуется везде, кажется сложным, когда вы используете docker, nginx и EC2. Я попробовал это и не могу передать ошибку, которую я связываю ниже.

Поэтому мне было интересно, есть ли способ настроить nginx с сертификатом AWS. Я прочитал, что AWS сертификаты бесплатны, но не могут быть загружены (https://serverfault.com/questions/822035/). Поэтому мой вопрос состоит из трех частей:

a) Могу ли я настроить nginx без https, получить бесплатный сертификат для моего экземпляра AWS EC2 и затем запустить мое приложение на этом сервере с помощью https?

б) Если ответ положительный, как я могу настроить свой nginx сервер для обслуживания только http для этого?

c) Если я куплю сертификат в ЦС, могу ли я используйте его для настройки моего nginx и будет ли оно переносимым, если я переместу свое приложение (в Digital Ocean или Azure или sth)?

Прямо сейчас моя конфигурация nginx выглядит следующим образом:

server {

    set $my_host $host;
    if ($host ~ "\d+\.\d+\.\d+\.\d+") {
        set $my_host "localhost:8000";
    }

    listen 80;
    server_name localhost:8000;
    charset utf-8;
    error_log /dev/stdout info;
    access_log /dev/stdout;

    location / {
        proxy_pass http://django:5000;
        proxy_set_header Host $my_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }


}

составить файл

services:
  django:
    build:
      context: .
      dockerfile: ./compose/production/django/Dockerfile
    image: heatbeat_website_production_django
    env_file:
      - ./.envs/.production/.django
      - ./.envs/.production/.postgres
    command: /start

  nginx:
    build:
      context: .
      dockerfile: ./compose/production/nginx/Dockerfile
    ports:
      - "0.0.0.0:80:80"
    depends_on:
      - django

  redis:
    image: redis:5.0

Я ни в коем случае не эксперт в большинстве этих технологий, и я сражаюсь здесь в джунглях. Очень благодарен за помощь, советы, подсказки, предложения и рекомендации. Большое спасибо заранее. Я рад предоставить больше кода, если это необходимо.

Учебное пособие, которое я пытался, но не могу решить свою ошибку: https://medium.com/@pentacent / nginx -and-let-encrypt-with- docker -в-менее-5-минут- b4b8a60d3a71

Учебное пособие для nginx с docker и давайте зашифруем, я хотел следовать, если нет более простого и быстрого решения: https://www.humankode.com/ssl/how-to-set-up-free-ssl-certificates-from-lets-encrypt-using-docker-and-nginx

Ошибка с Let's Encrypt:

Тайм-аут во время подключения (вероятно, проблема с брандмауэром) Чтобы исправить эти ошибки, убедитесь, что ваше доменное имя было введено правильно и записи DNS A / AAAA для этого домена указан правильный IP-адрес.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...