Бесплатный HTTPS. Быстрый старт с Let’s Encrypt Certbot + Nginx, Digital Ocean, HTTP/2
Что этоLet’s Encrypt — проект Mozilla и еще нескольких компаний стартовавший в 2014 году как удостоверяющий центр для предоставления безопасных, при этом бесплатных TLS (SSL) сертификатов. Срок жизни сертификата — 3 месяца.Certbot — ClI — программа для Linux, помогающая получать и устанавливать сертификаты от Let’s Encrypt.LE-testАутентификатор и инсталляторАутентификатор проверяет принадлежит ли вам домен, получает сертификат и кладет его к себе в /etc/letsencrypt .Инсталлятор устанавливает сертификат на ваш сервер.3 типа аутентификации (challenges)Ниже приведены три доступных для LE способа проверить, принадлежит ли вам домен.1. HTTP. В папке .well-known/acme-challenges создается временный файл и снаружи проверяется, доступен ли этот файл.2. TLS SNI (в народе SSL). Проверка по временному самоподписанному сертификату.3. DNS. В ресурсную запись домена TXT добавляется код, затем проверяется снаружи есть ли такая запись.Выбор типа аутентификации можно передать с помощью, например, —preferred-challenges tls-sni.5 плагинов1. Apache. Аутентификатор, инсталлятор. Поддерживает tls аутентификацию. Подходит, если у вас Apache с поддержкой библиотеки libaugeas0 1+.2. Webroot. Аутентификатор. Поддерживает http аутентификацию. Подходит, если у вас старый или нестандартный веб-сервер.3. Nginx. Аутентификатор, инсталлятор. Поддерживает tls аутентификацию. Подходит, если у вас Nginx.4. Standalone. Аутентификатор. Поддерживает http и tls аутентификацию. Сам поднимет веб-сервер для аутентификации.5. Manual. Аутентификатор. Поддерживает dns, http и tls аутентификацию. Подходит, если вы хотите все сделать руками.Выбрать плагин можно с помощью команд типа —nginx или —webroot. Выбрать отдельно аутентификатор, отдельно инсталлятор можно, например, через -a webroot -i apache.Установка certbotЧтобы установить Certbot, достаточно перейти на https://certbot.eff.org/, выбрать дистрибутив Linux и тип веб-сервера.Чтобы узнать версию Linux, выполнитеcat /etc/issueЧтобы узнать ваш тип веб-сервера есть много способов, напримерnetstat -nlpt | grep 80Обновление сертификатаОбновление всех сертификатов можно запустить командой certbot renew . Если сертификаты обновлять еще рано, certbot не станет их обновлять.Запуск в холостую (проверка вашей команды)Однако, если вам нужно проверить, доступно ли обновление сертификата/ов определенным способом, рекомендую использовать ключ —dry-run , который сымитирует перевыпуск сертификатов, проверив правильность вашей команды.Задание для планировщикаКогда вы проверили свою команду для обновления сертификатов, ее следует добавить в планировщик cron. Для этого выполните crontab -e , затем в открывшемся редакторе допишите строку 0 0,12 * * * certbot renew . Данное правило будет выполняться дважды в день каждый день. Если сертификаты обновлять будет рано, то Certbot не станет их обновлять.НюансыКеш сертификата в браузереБраузер (у меня Chrome) довольно сильно кеширует данные сертификата и обычным cmd+shift+R ( ctrl+shift+R на Windows) не всегда получается получить новые данные. Я нашел кнопку, которая сбрасывает кеш сертификата. Нажмите cmd+Y (история), дальше нажмите очистить , затем поставьте галку на «Изображения и другие данные, сохраненные в кэше».chrome-sslHTTP/2 — на десертЕсли у вас Nginx версии 1.9.5+ (проверять с помощью nginx -v)Если ваш Nginx собран с поддержкой http2 модуля (проверять с помощью nginx -V)Вы можете дописать после listen 443 ssl параметр http2 и у вас будет http/2 соединение!http2 Пошаговое обучающее видео— https://youtu.be/HaLy92BTALIСсылка на статью: https://flagstudio.ru/%D0%B1%D0%BB%D0%BE%D0%B3/lets_encrypt_certbot_nginx_digital_ocean
[источник «CMS Magazine. Новости рынка веб-разработок и интернет-маркетинга»]