Найти тему
Default Web development

Бесплатные SSL сертификаты с docker

SSL сертификаты для сайта в наше время очень нужны. Получить их можно абсолютно бесплатно. В этом нам поможет docker и certbot.

Предположим, у Вас уже есть сайт на каком-то сервере, куда есть полный доступ по ssh. Устанавливаем на сервер docker по официальной инструкции и приступаем к работе с нашими сертификатами.

Создаем где-то на сервере папку certbot.

Предположим, что это /root/certbot.

Создаем в ней следующие пути: /data/etc и /data/lib - там certbot будет хранить свои конфигурации

Помещаем туда файл run.sh следующего содержания:

https://pastebin.com/9Pknbx0Q - код файла текстом.

Остановимся подробнее на строчке -v /var/www/html/mysite - мы прокидываем внутрь контейнера ту папку, где хранится webroot нашего сайта. Это необходимо для выпуска сертификатов.

Настало время теста выпуска сертификатов:

/root/certbot/run.sh certonly --webroot -w /var/www/html/mysite -d mysite.com -d www.mysite.com --dry-run

Будет запущен certbot, который проверит возможность выдачи нам двух сертификатов. Для mysite.com и www.mysite.com

Если, во время выполнения, не было выдано никаких ошибок - можно запускать реальный выпуск сертификата. Для этого удаляется флаг --dry-run

/root/certbot/run.sh certonly --webroot -w /var/www/html/mysite -d mysite.com -d www.mysite.com

По ходу выполнения, certbot может задать Вам несколько вопросов по поводу контактного email, имени компании и прочего - заполняйте их, исходя из Ваших реальных данных.

Когда сертификаты выданы, certbot разместит их в папке /root/certbot/data/etc/live/mysite.com/ - остается только перенастроить Ваш сервер для их использования.

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

Для этого необходимо добавить в ваш cron следующую команду:

9 */12 * * * /root/certbot/run.sh renew -q

Каждые 12 часов в 9 минут мы продлеваем Ваши сертификаты.

Вот и все. Не тратя ни копейки, Ваше приложение защищено ssl сертификатом.