аукцион / donate / услуги / RSS / распечатать / вход 
Мой мир
Вконтакте
Одноклассники

[4 июля 2020 | 17 июля 2020 | 24 июля 2020]

Переход на HTTPS с бесплатными сертификатами Let’s Encrypt под Apache

Одна из основных проблем перехода на HTTPS — это платные сертификаты. Есть два выхода в подобной ситуации. Первый — это использовать самоподписаные сертификаты, но в этом случае браузер не пускает пользователя на сайт пока пользователь не согласится с угрозой безопасности. Чаще всего пользователи пугаются и игнорируют подобный сайт. Исключение составляют всевозможные комерческие сайты для которых прямо в инструкции написано, что необходимо согласиться с этим предупреждением. Второй выход — это использовать разные системы по выпуску бесплатных сертификатов. Одна из таких компаний: Let’s Encrypt. Один из минусов бесплатных сертификатов в том, что они обычно выпускаются на короткий срок. Как правило 90 дней.

Так как мне нужно было проэкспериментировать с одной идеей, я решил запустить на домашнем сервере HTTPS-сервер и получить на него бесплатный сертификат. Выбор пал на автоматический выпуск сертификатов с использованием Certbot. В моём случае установлена операционная система Debian 9 (Strache) и Apache 2.4. Если перейду на другую для своего web-сервера, то выпущу ещё одну статью. Но думаю, что ничего кардинально не изменится.

NB: Перед настройкой войдём в систему с правами администратора.

Для начала добавим репозиторий backports в /etc/apt/sources.list. Откроем этот файл на редактирование и добавим строчку:

deb http://ftp.debian.org/debian stretch-backports main

Далее обновим систему и всё, что подтянется за этим процессом:

apt update
apt upgrade

После обновления желательно перезагрузить систему и проверить, что она всё-ещё в работоспособном виде. Следующим шагом установим бот для выпуска сертификатов, который ориентируется на Apache. Многие советуют после установки перезагрузить Apache.

apt install python-certbot-apache -t stretch-backports
systemctl reload apache2

Теперь мы готовы к выпуску сертификата. Я выпускал сертификат для суб-домена. Команда для выпуска сертификата выглядит вот так:

certbot --apache -d media.orcinus.ru

Но вы можете использовать вот такую конструкцию:

certbot --apache -d orcinus.ru -d www.orcinus.ru -d media.orcinus.ru -d stream.orcinus.ru

Можно указать дикое количество доменов, но не забывайте, что чем больше доменов, тем больше время обработки сертификата браузером. Так, что не забывайте об этой тонкости. При первом выполнении команды вас попросят ввести свой почтовый ящик.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): почта@orcinus.ru

Следующим шагом попросят подтвердить согласие с лицензионным соглашением.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: a

Далее следует вопрос об использовании вашего адреса.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

Далее идёт процесс выпуска сертификата и подтверждение владения доменом.

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for media.orcinus.ru
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-enabled/media-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-enabled/media-le-ssl.conf

После редактирования конфигурационных файлов у нас спросят хотим ли мы оставить обработку HTTP-запросов как есть или сделать безусловный редирект на HTTPS.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1

И под конец, скрипт завершает работу и предлагает немножко задонатить.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://media.orcinus.ru

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=media.orcinus.ru
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/media.orcinus.ru/---------.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/media.orcinus.ru/-------.pem
   Your cert will expire on 2020-10-15. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Как ни странно на этом всё. Бот сам перезагружает Apache для того, чтобы применились все настройки. HTTP запустился и в локальной сети и извне. Кстати, если вы используете роутер, то не забудьте пробросить 443 порт до нужного хоста.

До новых встреч, будьте в безопасности!

Тэги: ИТ

Отредактировано:2020-09-04 13:48:24




3 комментария
Имя: Lighty 🖉
Имеет смысл смысл дописать в статью описание выпуска сертификатов для nginx, так как часто применяются двухуровневые конфигурации
Комментарий оставлен: 2020-07-19 00:00:00


Имя: Orcinus Orca 🖉
Lighty, у меня сейчас нет работающего NGINX по 443 порту, а если я это на практике не применяю, то не смогу ручаться за работу этого механизма. Так, что подождем пока у меня самого не возникнет подобной ситуации.

Меня пока тревожит вопрос как стартануть WebRTC многопользовательские видеочаты. Инфы про них вроде тьма, но 99% строятся поверх WCS, который бесплатен всего на 30 дней. Остальные реализации либо очень расплывчаты и описывают лишь теоретическую часть, без практической реализации.
Комментарий оставлен: 2020-07-20 00:00:00


Имя: Lighty 🖉
Нашел хорошую статью по теме https://beget.com/ru/kb/how-to/vps/vypusk-i-ust...
Комментарий оставлен: 2020-10-19 00:00:00



Этот сайт использует файлы cookies, чтобы упростить вашу навигацию по сайту, предлагать только интересную информацию и упростить заполнение форм. Я предполагаю, что, если вы продолжаете использовать мой сайт, то вы согласны с использованием мной файлов cookies. Вы в любое время можете удалить и/или запретить их использование изменив настройки своего интернет-браузера.

Сообщайте мне о замеченных ошибках на: web@orcinus.ru. Все пожелания и советы будут учтены при дальнейшем проектировании сайта. Я готов сотрудничать со всеми желающими. В некоторых случаях, мнение автора может не совпадать с мнением автора! Phone: +7-902-924-70-49.

Top.Mail.Ru
Top.Mail.Ru LiveInternet Rambler's Top100 Яндекс.Метрика