С недавнего времени chrome начал помечать сайты работающие по протоколу http как небезопасные. А это значит самое время настроить ssl сертификат. Чтобы получить ssl сертификат совсем не обязательно платить за него. Можно воспользоваться бесплатным сертификатом от letsencrypt. И в этом нам поможет официальный клиент - certbot.
Ниже простая приведена простая инструкция по подключению ssl сертификата на веб сервер. А так же пример автопродления этого сертификата.
1. Установить certbot
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
2. Запустить certbot для получения сертификата
sudo ./path/to/certbot-auto certonly --standalone -d example.com -d www.example.com
В новых версиях certbot можно добавить команды для упрощенного подключения серитфиката, путем анализа файлов конфигов веб-сервера. Поддерживаются все популярные веб серверы. Мы для примера возмем nginx
sudo ./path/to/certbot-auto --nginx
Данная команда создаст сертификат, а так же отредактирует ваши конфиги, добавив туда полученные сертификаты.
Если вы хотите внести изменения в конфиги вручную - существует следующая команда:
sudo ./path/to/certbot-auto --nginx certonly
Далее, если ваши конфиги коректны certbot предложит выбрать домены на которые будут подключены сертификаты.
Далее certbot получит сертификаты. И выведет сообщение с путями до публичного (fullchain.pem) и приватного (privkey.pem) ключа сертификата. А так же дату окончания сертификата.
3. Добавление сертификатов в конфиг веб сервера.
В этой статье мы рассматриваем установку сертификата на сервер с nginx.
В блок server добавьте следующие строки
listen ssl;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
Сертификат действует 90 дней. После чего его нужно можно обновить, выполнив команду
sudo ./path/to/certbot-auto renew
Автоматической обновления сертификата
Для автоматической обновления сертификата нужно создать cron-задание.
crontab -e
И добавить в файл конфигурации запись, например:
0 2 * * * ./path/to/certbot-auto renew
Данная команда будет каждый день в 2 часа ночи совершать попытку обновить сертификат. Пока сертификат действителен certbot ничего не будет делать, а лишь сообщит о том что сертификат еще действителен.