Django 5 для начинающих

Прогресс по курсу:  9/1004

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

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

 

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

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

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

apt update -y


А затем установим Certbot, выполняем:

apt install certbot python3-certbot-nginx -y


И сразу запускаем процесс получения сертификата:

certbot --nginx -d django-blog.my-domain.ru

Примечание: django-blog.my-domain.ru необходимо заменить на ваше доменное имя.


Вводим свой email адрес:


Соглашаемся с условиями предоставления услуг Let's Encrypt, вводим y(yes):

Сертификат получен, и поддержка HTTPS была автоматически добавлена в файл mysite_03.conf.


Проверяем результат, откроем наш сайт в браузере: https://<имя вашего домена>:

Наш сайт стал доступен по HTTPS.


Сертификаты от Let's Encrypt выдаются на 90 дней. Поэтому нам нужно убедиться, что эти сертификаты будут успешно обновляться автоматически, без дополнительного вмешательства.

Сначала проверим, что служба автоматической проверки сертификатов certbot.timer запущена и работает:

systemctl status certbot.timer

Служба работает, завершаем просмотр нажатием клавиши Q.


Теперь проверим, в холостом режиме(--dry-run), процедуру продления сертификатов:

certbot renew --dry-run

Сертификат был успешно "продлён", значит и в дальнейшем с этим не возникнет проблем, сертификат будет продлеваться автоматически.


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

Спасибо за крутую инфу! Жаль что мало кто ее дает (

Спасибо Вам большое, за такой труд, не знаю, что и делал бы без Вас!!!

А в дальнейшем, чтобы корректировать блог и вносить какие-то изменения, нужно на компе всё делать, а потом отдельные файлы загружать на сервер вместо предыдущих?

@Maxim_Lapshin, можно так и делать, или обновлять со своего удалённого репозитория, например с гитхаба.

encrypt не дает сертификат. Ошибка:

Could not automatically find a matching server block for ..... Set the `server_name` directive to use the Nginx installer.

В конфиге nginx была ошибка, в server_name был другой домен(django-blog.my-domain.ru), сейчас уже не знаю куда смотреть

Изменен Вадим Тимшин

@Вадим_Тимшин, django-blog.my-domain.ru необходимо было заменить на свой домен xx-xxx.ru во всех конфигах.

Изменен Дмитрий Селезнев

@Дмитрий_Селезнев, заменил, но все равно не работает :( вот сюда и написал

@Вадим_Тимшин, загрузите данные для доступа на сервер, на мегу https://mega.nz/filerequest/rANtUqzWHQ4, посмотрю в чём проблема.

Сейчас посмотрю.

@Вадим_Тимшин, в server_name была ошибка в имени сабдомена www, вместо тире стояла точка: www.xx.xxx.ru.

Я добавил и основной домен xx-xxx.ru в server_name, и в конфиг джанго.

Если нужен сертификат для их обоих, то запускайте certbot так:

certbot --nginx -d my-domain.ru -d www.my-domain.ru

Если нет, то удалите  лишнее имя из server_name (и конфигов джанго тоже) и получайте сертификат только для того имени, что указано в server_name.

@Дмитрий_Селезнев, благодарю, выдали серитфикат)

@Дмитрий_Селезнев, отвалилась авторизация через api, что можно проверить? Локально в проекте все работает.

@Вадим_Тимшин, распишите поподробнее что не работает, окно авторизации через api я вижу на вашем сайте.

@Дмитрий_Селезнев, при нажатии на ссылку sign in github или google выходит ошибка 404

@Вадим_Тимшин, там все настройки для локалхоста остались, надо заново выполнить регистрацию нового приложения на гитхабе(указать корректный урл сайта) и ввести новые данные в SOCIAL_AUTH_GITHUB_KEY и SOCIAL_AUTH_GITHUB_SECRET.
Так же и для гугла, всё как в https://stepik.org/lesson/1005422/step/1?unit=1013061.