WebWost WebWostbeta

Let’s Encrypt - Бесплатные SSL сертификаты

Получение бесплатных SSL сертификатов от Let’s Encrypt с использованием Certbot

Al-Sher

Всем привет. Сегодня я решил рассказать о получении бесплатного SSL сертификата от Let’s Encrypt.

Возможно многие из вас уже слышали о том, что в 2017 году Google Chrome будет считать HTTP-сайты ненадежными. В общем суть такова, что сайты без SSL-сертификатами станут показываться с окном-предупреждением, что оттолкнет множество клиентов. Google связывает это с попыткой защитить своих пользователей, однако, как мне кажется, просто еще один способ заработать на пользователях(платный SSL стоит от 700 рублей в год).

Конфигурация сервера

В качестве сервера был выбран VPS с такими характеристиками:

Из программного обеспечения я установлю nginx, php7, mariadb. Если вы используете другую ОС или ПО, отвечающее за web-сервер(например, apache), то данная статья не подходит для вас. Можете листать в заключение за поиском ссылки на официальную страницу проекта certbot.

Установка certbot

Для установки certbot необходимо выполнить установку пакета EPEL(Extra Packages for Enterprise Linux). Делается это следующей командой

yum install epel-release

После успешной установки выполняем следующую команду:

yum install certbot

На этом заканчивается установка certbot и начинается его настройка.

Начальная настройка certbot

Для начальной настройки certbot ваш домен должен быть активен, связано это с подтверждением владения доменом. Выполняем команду

certbot certonly --webroot -w /var/www/example -d example.com -m admin@example.com

Теперь разбираем данный пример и все флаги, передаваемые certbot`у.

Флаг webroot указывает на устанавливаемый плагин. Если вы используете не nginx, то данный флаг будет другим.

Флаг w указывает на путь до файлов сайта. По данному пути создастся специальная папка с файлом, необходимые для подтверждения владения доменом. После выдачи сертификат файл удалится.

Флаг d указывает на домен для которого создается SSL сертификат.

Флаг m указывает на почтовый адрес администратора домена, на чье имя оформляется сертификат. Рекомендую писать admin@домен.ру.

Настройка Nginx

Если сертификаты выданы успешно, то они хранятся по пути /etc/letsencrypt/live/домен. Нам понадобится данный путь для настройки nginx.

Итак, переходим в конфиг nginx и добавляем примерно следующие строки

server {
listen 443 ssl;
server_name example.com;
ssl on;
ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key     /etc/letsencrypt/live/example.com/privkey.pem;
}

Конечно не забываем прописывать основные данные, например, директорию сайта.

Перезагружаем nginx с помощью restart(можно использовать и nginx -s reload).

Если всё сделано без ошибок, то при заходе на https://example.com у вас откроется страница вашего сайта.

Завершаем настройку certbot

В заключении настройки certbot нам необходимо настроить авто-продление сертификата, так как в данный момент он устанавливается на 3 месяца(90 дней).

Для начала проверим работоспособность авто-продления сертификатов

certbot renew --dry-run

Если вам выводится, что все сертификаты обновлены, то всё хорошо, можно продолжать. 

Ставим на cron следующую задачу

0 12 * * * certbot renew —quiet

Этим кроном мы запускаем команду 

certbot renew —quiet

Раз в день, в случае, если потребуется обновление сертификата, то данная команда обновит его. Рекомендую ставить cron от пользователя, который имеет доступ к папке сертификатов.

Заключение

На этом моменте я хочу закончить и подвести итог. Сегодня мы подключили Let`s Encrypt и заставили его выдавать нам сертификаты для nginx на Centos 7.

Если вдруг у вас возникли проблемы или у вас другая ОС/ПО, то вот ссылка на официальную документацию: certbot.eff.org.

Кстати, этот тестовый сервер я арендовал у ruVDS всего за 65 рублей.

0 Комментариев

Новый комментарий