Продвинутый Django 5 для продолжающих

Прогресс по курсу:  0/193

12.4 Получение SSL-сертификата от Let's Encrypt и настройка HTTPS
2 из 2 шагов пройдено

Получение SSL-сертификата от Let's Encrypt


Для настройки подключения по HTTPS необходим SSL-сертификат, их выпуском занимаются центры сертификации, эта услуга платная, цены начинаются от 1-2т.р. и более за сертификат на одно доменное имя на один год.

Альтернативой платным сертификатам, может стать бесплатные сертификаты от центра сертификации Let's Encrypt.
На данные момент большое количество сайтов используют сертификаты от Let's Encrypt, в том числе и stepik.org.

Автоматизированное получение и продление сертификатов от Let's Encrypt осуществляется с помощью Certbot, но в данном случае будет использоваться его одноимённый образ.

Для начала остановим и удалим контейнеры:

docker compose -f docker-compose.prod.yml down


Затем отредактируем файл docker-compose.prod.yml, выполним:

vi docker-compose.prod.yml


Добавим новую секцию для контейнера certbot:

  certbot:
      image: certbot/certbot
      volumes:
      - ./certbot/conf:/etc/letsencrypt
      - ./certbot/www:/var/www/certbot
      command: certonly --webroot --webroot-path=/var/www/certbot/ --email ваш@email --agree-tos --no-eff-email -d имя_вашего_домена -d www.имя_вашего_домена
      depends_on:
      - nginx

В секции nginx, в volumes добавим:

      - ./certbot/conf:/etc/letsencrypt
      - ./certbot/www:/var/www/certbot

И откроем 443 порт для HTTPS:

      - 443:443

Примечание: в команде certonly обязательно укажите ваш email и имя вашего домена, это необходимо для получения сертификата!


Создадим директории для certbot, выполним:

mkdir -p certbot/conf
mkdir certbot/www


Перейдём в директорию nginx и отредактируем файл конфигурации htmx_book.conf:

cd nginx
vi htmx_book.conf


Добавим в файл конфигурации htmx_book.conf следующие строки:

    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }


Вернёмся в директорию проекта и пересоберём образы:

cd ..
docker compose -f docker-compose.prod.yml build


Создадим и запустим контейнеры:

docker compose -f docker-compose.prod.yml up -d


Контейнеры запустились, теперь проверим наличие сертификатов, перейдём в директорию certbot/conf/live:

cd certbot/conf/live
ls -la


В ней должна быть директория с именем вашего домена, смотрим её содержимое:

ls -la имя_вашего_домена


В данной содержатся ссылки на сертификаты для вашего домена, в следующем шаге мы подключим их.


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