
С середины ноября, с подачи друга, я активно стал следить за прекрасным начинанием 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 дней, я расскажу как это автоматизировать ;)
Ссылки по теме: