3 заметки с тегом

SSL

SSL demystifying

Автопродление SSL-сертификатов

В прошлый раз я рассказал, как за три месяца не успел настроить автопродление сертификатов, и пришлось сделать это вручную. На что Саша справедливо ответил простой ссылкой:

С тех пор снова прошло три месяца: пора обновить сертификаты; и настроить Крон.

Вообще говоря, к упомянутому руководству Диджитал-Оушена добавить нечего. Крон настраивается очень просто, и именно так, как описано в статье. С поправкой на то, где находится локальная копия репозитория. А это есть в предыдущих статьях по тегу.

Теперь все настроено, и цикл статей про замечательные SSL-сертификаты Let’s Encrypt заканчивается :)

Продление сертификатов Let’s Encrypt

В прошлой заметке я рассказал как установить на свой сайт сертификаты Let’s Encrypt (бесплатно, без смс). С тех пор быстро прошли три месяца, и сертификаты пора обновить.

Я не успел узнать как правильно настроить крон, чтобы автоматизировать продление, поэтому пришлось сделать это вручную. Но я узнал, что за это время появилась специальная команда renew :)

План действий такой. В прошлый раз мы склонировали репозиторий letsencrypt к себе, теперь его надо обновить, остановить nginx (как в прошлый раз), продлить сертификаты, запустить сервер.

cd letsencrypt/             # перейти в директорию letsencrypt
git pull                    # скачать обновления репозитория
./letsencrypt-auto --help   # проверить, что все нормально
sudo service nginx stop     # остановить сервер
./letsencrypt-auto renew    # ← обновить сертификаты
sudo service nginx start    # запустить сервер

Все, теперь сертификат валиден еще три месяца. После отпуска я обязательно автоматизирую это.

Respect My Authority!
2016   SSL   сайт

Let’s Encrypt

cover black transparent

С середины ноября, с подачи друга, я активно стал следить за прекрасным начинанием Let’s Encrypt:

До декабря 2015, сертификаты продавались исключительно за дикий оверпрайс. А теперь появился Let’s Encrypt, и выдает настоящие сертификаты бесплатно.

Для чего нужен SSL-сертификат? Трафик с сайта может быть незашифрованный или зашифрованный и подписанный сертификатом. Во втором случае подтверждается, что весь трафик идет именно с этого сайта и по пути не подменяется злоумышленниками. В первом случае — ничего не известно.

Сертификаты отличаются степенью идентификации. Для личного сайта подходит простой. А вот у Рокетбанка в строку адреса еще добавляется модное 🔒Rocket LLC.

Раньше простой сертификат можно было бесплатно получить только у StartSSL по сложной инструкции на Хабре. Я установил такой сертификат на m4rr.ru полгода назад, и периодически наблюдал, как на каком-нибудь компьютере сайт не открывался due to SSL issue.

Стоит заметить, что корневые центры сертификации подтверждают сертификаты Let’s Encrypt. А это значит, современные браузеры считают их правильными!

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

  • — система Let’s Encrypt сейчас в стадии бета-тестирования — обратите внимание, если вам это не подходит;
  • — сертификаты выдаются на 90 дней;
  • — не забудьте сделать бекап вашей виртуалки до начала.

В документации все хорошо описано, но нет конкретного примера для веб-сервера nginx. Поэтому, я опишу свой опыт.

Чтобы начать работу, нужно склонировать на свой сервер репозиторий letsencrypt, перейти в эту директорию и запустить враппер letsencrypt-auto:

$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto --help

После этого нужно запустить создание сертификата. Например, для двух доменов — m4rr.ru и blog.m4rr.ru — код будет таким:

$ ./letsencrypt-auto certonly --standalone -d m4rr.ru -d blog.m4rr.ru

Если в это время nginx был запущен, то программа попросит выключить его на время, чтобы она смогла слушать :80 порт.

Когда все будет готово, система сообщит об этом. Жирным выделено два важных момента:

Congratulations! Your certificate and chain have been saved at /etc/.../fullchain.pem. Your cert will expire on 2016-03-06. To obtain a new version of the certificate in the future, simply run Let’s Encrypt again.

Дальше нужно просто внести информацию о сертификате в конфиг сервера. Например:

server {
  listen 443 ssl;
  server_name m4rr.ru;

  ssl on;
  ssl_certificate     /etc/.../fullchain.pem;
  ssl_certificate_key /etc/.../privkey.pem;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
}

И добавить в календарь на Маке специальное событие:

А через 90 дней, я расскажу как это автоматизировать ;)

Ссылки по теме: