Как включить и настроить https и получить ssl/tls сертификат для сайта nginx/docker-compose/django, для домена .dev

Я хотел бы установить ssl/tls сертификат, чтобы я мог переходить на свой сайт через домен .dev, который у меня есть.

Я не знаю, в каком направлении лучше двигаться, чтобы включить https для моего домена .dev (https://en.wikipedia.org/wiki/.dev). Я понял, что http не будет работать, потому что домены .dev предварительно загружены в список http strict transport security (hsts) (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security).

Я думал пройти через этот учебник (https://testdriven.io/blog/django-lets-encrypt/), но я не знаю, есть ли более простые способы, поскольку мой проект настроен немного по-другому, и я не уверен, что мне нужно изменить, чтобы это сработало.

В настоящее время я могу зайти на свой сайт через его публичный адрес ipv4, но ipv6 включен. Мой домен находится через google domains и, насколько я могу судить, пользовательские записи верны, мне просто нужен работающий сертификат.

Что нужно сделать/изменить, чтобы включить https?

Это Django/Wagtail сайт с 3 контейнерами: nginx, web и db.

/app/docker-compose.prod.yml:

version: "3.7"

services:
  nginx:
    build:
      context: .
      dockerfile: ./compose/production/nginx/Dockerfile
    volumes:
      - staticfiles:/app/static
      - mediafiles:/app/media
    ports:
      - 80:80
      - 443:443
    depends_on:
      - web

  web:
    build:
      context: .
      dockerfile: ./compose/production/web/Dockerfile
    image: wagtail_bootstrap_blog_prod_web
    command: /start
    volumes:
      - staticfiles:/app/static
      - mediafiles:/app/media
    env_file:
      - ./.env/.prod
    depends_on:
      - db

  db:
    image: postgres:12.0-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    environment:
      - POSTGRES_DB=<POSTGRES_DB>
      - POSTGRES_USER=<POSTGRES_USER>
      - POSTGRES_PASSWORD=<POSTGRES_PASSWORD>

volumes:
  postgres_data:
  staticfiles:
  mediafiles:

/app/compose/production/nginx/Dockerfile

FROM nginx:1.19.2-alpine

RUN rm /etc/nginx/conf.d/default.conf
COPY ./compose/production/nginx/nginx.conf /etc/nginx/conf.d

/app/compose/production/nginx/nginx.conf

upstream hello_django {
    server web:8000;
}

server {
    listen 80;
    location / {
        proxy_pass http://hello_django;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
        client_max_body_size 20M;
    }
    location /static/ {
        alias /app/static/;
    }
    location /media/ {
        alias /app/media/;
    }
}

Структура, если вам нужен лучший обзор проекта: https://github.com/AccordBox/wagtail-bootstrap-blog

Если вам нужна еще какая-либо информация или у вас есть какие-либо рекомендации для меня, просто скажите об этом. Спасибо!

Вернуться на верх