Итак, гугл анонсировал более высокое ранжирование для сайтов, защищенных SSL - https://habrahabr.ru/post/232629/. В декабре Letsencrypt вышли в открытую бету, предоставляя возможно получить бесплатный сертификат почти без ограничений для каждого домена.
Для начала небольшой FAQ
Это полностью бесплатно? Да, сам сертификат не стоит ничего.
Елки, он всего на 3 месяца! Повторный выпуск для сертификата можно сделать автоматически и добавить в cron (задачи, по расписанию).
Говорят, нужно иметь на каждый HTTPS-сайт отдельный IP Уже нет. Есть технология SNI (Server Name Indication).Описывать ее не буду, почитайте в вики. Суть в том, что можно на 1 ip разместить несколько сайтов, зашифрованных SSL. поддержка этой технологии давно есть в nginx, apache. Но ее не поддержвает древний IE в Windows XP. Так что выбирать вам.
Можно ли использовать на коммерческом сайте? Да. Это главное отличии от StartCom SSL.
Настраиваем на VPS
На VPS у вас должен стоять Linux, не древний, чтобы был свежий openssl и nginx. Настройку на Apache я не рассматриваю,но она делается так же, только конструкции с другим синтаксисом.
Устанавливаем Letsencrypt на сервер.
Если не стоит git, ставим:
Код HTML:
apt-get install git
Устанавливаем сам letsencrypt:
Код HTML:
cd /opt/
git clone https://github.com/letsencrypt/letsencrypt
Создаем ключ для более стойкого шифрования
Надо выполнить 1 раз. Использовать будем шифрование 2048.Этого достаточно.
sudo service nginx stop
./letsencrypt-auto --server https://acme-v01.api.letsencrypt.org/directory auth --rsa-key-size 2048
Эта команда спросит у вас домен, вводим свой домен. Если у вас домен с www и без, нужно будет выполнить для каждого домена отдельно. Если все ок, ваш сертификат будет в /etc/letsencrypt/live/www.yourdomain.com/
Настраиваем Nginx.
Тут я приведу типовую конфигурацию. "www.yourdomain.com" везде меняем на домен вашего сайта.
add_header Strict-Transport-Security - Нужно для того, чтобы браузер знал что ваш сайт работает только по HTTPS. ssl_session_cache shared - Объем памяти для кеширования SSL-сессий ssl_stapling - для того чтобы постоянно не запрашивались данные о сертификате от центра сертификации. Я использую DNS яндекса так как они у нас в России быстрее гугловских, если хотите для зарубежного сайт, используйте 8.8.8.8 8.8.4.4
Так же вы можете настроить ssl_ciphers для указания тех алгоритмов шифрования, что нужно. Nginx часто подсовывает по умолчанию устаревшие.
Не забудьте рестартануть nginx
Код HTML:
sudo service nginx start
Что дальше
Обновлять по cron ваши сертификаты можно следующим скриптом
Код HTML:
#!/bin/bash
service nginx stop
cd /opt/letsencrypt
./letsencrypt-auto certonly -d www.yourdomain.com --renew-by-default --rsa-key-size 2048
./letsencrypt-auto certonly -d otherdomain.com --renew-by-default --rsa-key-size 2048
service nginx start
PS. В этой теме задавайте вопросы, если будут по настройке. Помогу чем смогу. Для неосиляторов, за символическую плату настрою вам ваш VPS со всеми сайтами, сделаю так чтобы защита была A+.
спасибо за статью! немного прошу уточнить, команды которые вы приводите, предназначены для установки на Ubuntu верно? сделаю в ближайшем будущем себе на сайт, только сервер будет на centos отпишусь о результатах, к стати будет интересно увидеть просадка по трафику будет после переезда с http на https, или нет и насколько значительная. Трафик в оновном с гугла и бинг.
спасибо за статью! немного прошу уточнить, команды которые вы приводите, предназначены для установки на Ubuntu верно? сделаю в ближайшем будущем себе на сайт, только сервер будет на centos отпишусь о результатах, к стати будет интересно увидеть просадка по трафику будет, или нет и насколько значительная. Трафик в оновном с гугла и бинг.
Единственная команда для Убунту тут apt-get install git. Остальное все сгодится для любого дистрибьютива. Сам letsencrypt на питоне большей частью, поэтому дистронезависим.
Просадки по трафику у меня лично нет. С гугла даже подрос за месяц. Но у меня изначально сайты не были предназначены для старых версий IE.
Просадилось у меня только время отклика. Примерно на 15-20 мс что не критично, ab выдает что-то вроде
Connection Times (ms) min mean[+/-sd] median max Connect: 16 17 1.5 16 24 Processing: 2 3 0.1 3 3 Waiting: 2 3 0.1 2 3 Total: 18 19 1.5 19 26
не могу победить ./letsencrypt-auto --server https://acme-v01.api.letsencrypt.org/directory auth --rsa-key-size 2048 -bash: ./letsencrypt-auto: No such file or directory сервер на centos 7... обновлены все пакеты. удалось cd letsencrypt ./letsencrypt-auto тут установка для centos 6,7 digitz.org/blog/lets-encrypt-ssl-centos-7-setup/
Последний раз редактировалось buninsan; 31.03.2016 в 18:04.
Плюс важно не забыть сменить http на https в роботс.тхт, сайтмапе, и в панелях вебмастеров. Потому что http и httpsсчитаются как зеркала - важно все быстро и правильно сделать
Прошу помощи у знатоков: конфиг nginx вот с этими диррективами не стартует ssl_session_cache shared:SSL:50m; с этим не пойму почему не заводится ssl_dhparam /etc/ssl/private/dhparams_2048.pem; на centos нет этого файла по пути еще как мне добавить в конфиг путь к сертификатам с www, сертификаты сгенерировал, тупо разместить под сертификатами без www не получается ssl_certificate /etc/letsencrypt/live/www.site.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.site.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/www.site.com/fullchain.pem;
include /home/admin/conf/web/nginx.site.com.conf*;
}
---------- Сообщение добавлено 23:04 ---------- Предыдущее 22:19 ----------
еще в догонку, если я буду клеить домены с www и без, то может быть сертификат на домен с www не нужен? как правильно поступить? первый раз вожусь с сертификатами, не имею опыта...
ssl_session_cache shared:SSL:50m; с этим не пойму почему не заводится
Какая версия nginx?
Сообщение от buninsan
ssl_dhparam /etc/ssl/private/dhparams_2048.pem; на centos нет этого файла по пути
Там у него в инструкции был этот момент, но это совсем не обязательно делать. Можно забить.
Сообщение от buninsan
еще в догонку, если я буду клеить домены с www и без, то может быть сертификат на домен с www не нужен? как правильно поступить? первый раз вожусь с сертификатами, не имею опыта...
Я отказался совсем от доменов с www, т.к. www нафиг не нужен, по сути это лишний элемент только. Стоят редиректы на версии без www. Соответственно для www не делал запросы на сертификаты.
Облачный хостинг из TOP-3 - от 1 Gb ОЗУ, от 25 GB SSD.