Let’s Encrypt - Бесплатные SSL сертификаты
Получение бесплатных SSL сертификатов от Let’s Encrypt с использованием Certbot
Al-Sher
Всем привет. Сегодня я решил рассказать о получении бесплатного SSL сертификата от Let’s Encrypt.
Возможно многие из вас уже слышали о том, что в 2017 году Google Chrome будет считать HTTP-сайты ненадежными. В общем суть такова, что сайты без SSL-сертификатами станут показываться с окном-предупреждением, что оттолкнет множество клиентов. Google связывает это с попыткой защитить своих пользователей, однако, как мне кажется, просто еще один способ заработать на пользователях(платный SSL стоит от 700 рублей в год).
Конфигурация сервера
В качестве сервера был выбран VPS с такими характеристиками:
- ОС Centos 7;
- Процессор Intel Xeon 2 ГГц;
- Оперативная память 512 Мб;
- Диск HDD 10 Гб;
- Трафик Безлимитный;
- 1 выделенный IP-адрес.
Из программного обеспечения я установлю 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_nameexample.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 рублей.