Настройка HTTPS в Docker Compose

Назовите свой проект

В качестве примера в этой инструкции используется проект с именем testit. Вы можете использовать другое название.

Перед настройкой https необходимо провести базовую настройку и установку Test IT.

  1. В .env-файле раскомментируйте переменные SSL_CERTIFICATE и SSL_CERTIFICATE_KEY:

    ## internal certificate path
    SSL_CERTIFICATE=/etc/nginx/ssl/testit.crt
    SSL_CERTIFICATE_KEY=/etc/nginx/ssl/testit.key
    #REDIRECT_TO_HTTPS=true
    
  2. Раскомментируйте REDIRECT_TO_HTTPS для редиректа http на https.

  3. Чтобы сервис frontend был доступен по https протоколу, пропишите 443 порт в docker-compose.yml файле:

    services:
      frontend:
        image: "${DOCKER_REGISTRY}/frontend:${CONTAINER_VERSION}"
        ports:
          - 80:80
          - 443:443
    ...
    
  4. Подготовьте файлы с сертификатом и ключом. Для этого дайте им имена testit.crt и testit.key. Имена файлов сертификатов должны соответствовать значению переменных SSL_CERTIFICATE и SSL_CERTIFICATE_KEY в .env-файле.

  5. Cкопируйте подготовленные файлы в хранилище сертификатов:

    certs=$(docker inspect testit_ssl-volume --format '{{ .Mountpoint }}')
    
    chown 101 testit.crt testit.key
    
    chgrp 0 testit.crt testit.key
    
    cp -p testit.crt ${certs}/
    
    cp -p testit.key ${certs}/
    
  6. Примените изменения, выполнив команду:

    docker compose -f docker-compose.yml --project-name testit up --detach --timeout 120
    
Обновлено: