Бесплатный SSL сертификат для сайта от Let’s Encrypt

С некоторых пор я перевел свои сайты на защищенный https с использованием нового http2 протокола и бесплатными сертификатами от Let’s Encrypt.

У себя на vps автоматизировал проверку, и получение новых сертификатов через crontab с помощью одной команды. Процесс установки Let’s Encrypt и автоматического обновления сертификатов я опишу ниже.

Установка Let’s Encrypt на ubuntu 16.04

Установим пакет Let’s Encrypt который поможет нам получить бесплатный ssl сертификат.

sudo apt install letsencrypt

После установки можно будет приступить к созданию сертификата для своего домена:

letsencrypt certonly  --email vasya@yahoo.su  -d you-site.ru

Электронную почту, и сайт нужно заменить на свои. И так мы получили свои первые бесплатные подписанные сертификаты. И где же они теперь ?
— Символьные ссылки на сертификаты лежат вот тут:

/etc/letsencrypt/live/you-site.ru/

Чтобы просмотреть список фалов сертификата введем эту команду в консоль

find /etc/letsencrypt/live/ -type l

Консоль выдаст вам это:

/etc/letsencrypt/live/you-site.ru/fullchain.pem
/etc/letsencrypt/live/you-site.ru/chain.pem
/etc/letsencrypt/live/you-site.ru/cert.pem
/etc/letsencrypt/live/you-site.ru/privkey.pem

это они, те самые, родимые сертификаты, срок действия сертификата 3 месяца, до истечения этого срока сертификаты нужно продлить, иначе ваши пользователи, да и вы сами однажды утром зайдя на сайт увидите неприятное сообщение на белом экране…

  Установка Nginx на Ubuntu. Свой веб сервер за 5 минут.

Но мы будем мудрее, и с нами такого не случится.

Автоматическое продление сертификатов Let’s Encrypt

Пытаться продлиться, и проверятся сертификаты будут раз в неделю с помощью cron в 6 часов утра, я думаю в это время не особо много трафика и 5 сек для :

  1. Остановки веб сервера
  2. Проверки, и если нужно обновления сертификата
  3. Запуска веб сервера

Никак не повлияют на основную работу сайта.

И так редактируем crontab:

sudo nano /etc/crontab

Вставим если у вас на 80 порту висит веб сервер NGINX

30 6    1 * * root service nginx stop && letsencrypt certonly --renew -d you-site.ru && service nginx start

Вставим если у вас на 80 порту висит веб сервер APACHE

30 6    1 * * root service apache2 stop && letsencrypt certonly --renew -d you-site.ru && service apache2 start

Всё готово, радуемся жизни.

  Установка php 7.1 на ubuntu. Настройка php7.1

4 Комментария (ев)

  1. Спасибо за ответ! А что за хостинг, если не секрет? У меня на spaceweb’е этого точно нет, думаю съезжать оттуда.

  2. Полезная статья. Одно не понятно — если я хочу сгенерировать сертификат для своего сайта, который находится на shared-хостинге, локально мне все равно необходимо ставить nginx или apache? т.е. сертификат при выполнении описанной выше инструкции будет генериться для локалхоста же, или я чего не понимаю?

    • Нет он будет генериться для домена , если домен указан , а так да если ничего не настроено , то для локалки генериться не будет вообще. У меня на хостинге , да и на многих хостинга есть услуга создания бесплатного сертификата от letsencrypt , все в автоматическом режиме. Эта статья больше нужна тем кто использует vps.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here