Итак, гугл анонсировал более высокое ранжирование для сайтов, защищенных SSL - https://habrahabr.ru/post/232629/. В декабре Letsencrypt вышли в открытую бету, предоставляя возможно получить бесплатный сертификат почти без ограничений для каждого домена.
Для начала небольшой FAQ
Это полностью бесплатно?
Да, сам сертификат не стоит ничего.
Его можно установить на обычный хостинг?
Есть хостинги, поддерживающие его. Список: https://github.com/letsencrypt/letse...-Supporting-LE На счет русских хостингов не уверен. Здесь я опишу установку на VPS/VDS.
Елки, он всего на 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:Устанавливаем сам letsencrypt:apt-get install gitКод HTML:Создаем ключ для более стойкого шифрованияcd /opt/ git clone https://github.com/letsencrypt/letsencrypt
Надо выполнить 1 раз. Использовать будем шифрование 2048.Этого достаточно.
Код HTML:Создаем новый сертификат.openssl dhparam -5 -out /etc/ssl/private/dhparams_2048.pem 2048
Код HTML:Эта команда спросит у вас домен, вводим свой домен. Если у вас домен с www и без, нужно будет выполнить для каждого домена отдельно.sudo service nginx stop ./letsencrypt-auto --server https://acme-v01.api.letsencrypt.org/directory auth --rsa-key-size 2048
Если все ок, ваш сертификат будет в /etc/letsencrypt/live/www.yourdomain.com/
Настраиваем Nginx.
Тут я приведу типовую конфигурацию. "www.yourdomain.com" везде меняем на домен вашего сайта.
Код HTML:Итак, немного объясню по конфигурации.server { listen 443 ssl; server_name www.yourdomain.com; ssl_certificate /etc/letsencrypt/live/www.yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.yourdomain.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/www.yourdomain.com/fullchain.pem; add_header Strict-Transport-Security "max-age=31536000; preload"; keepalive_timeout 65; ssl_session_cache shared:SSL:50m; ssl_session_timeout 10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_dhparam /etc/ssl/private/dhparams_2048.pem; ssl_stapling on; ssl_stapling_verify on; resolver 77.88.8.8 77.88.8.1 valid=300s; resolver_timeout 2s; # Тут инструкции вашего сайта. }
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
Полезные ссылки
1. Создаем свою конфигурацию для других веб-серверов, например Apache: https://mozilla.github.io/server-sid...fig-generator/
2. Тестируем ваш сайт: https://dev.ssllabs.com/ssltest/analyze.html - стремимся чтобы был класс А+
PS. В этой теме задавайте вопросы, если будут по настройке. Помогу чем смогу.
Для неосиляторов, за символическую плату настрою вам ваш VPS со всеми сайтами, сделаю так чтобы защита была A+.
Упрочняем позиции в Гугле: бесплатный сертификатSSL на сайт Letsencrypt
(Ответов: 18, Просмотров: 2881)
- 18.03.2016 17:03Новичок


- Регистрация: 28.04.2014
- Сообщений: 11
- Репутация: 4
- 18.03.2016 17:20
спасибо за статью! немного прошу уточнить, команды которые вы приводите, предназначены для установки на Ubuntu верно?
сделаю в ближайшем будущем себе на сайт, только сервер будет на centos отпишусь о результатах, к стати будет интересно увидеть просадка по трафику будет после переезда с http на https, или нет и насколько значительная. Трафик в оновном с гугла и бинг.Спасибо сказали:
rown(18.03.2016), - 18.03.2016 17:24Новичок


- Регистрация: 28.04.2014
- Сообщений: 11
- Репутация: 4
Единственная команда для Убунту тут 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
Это VPS от рег ру.
PS. Обязательно проверьте сайт с помощью https://dev.ssllabs.com/ssltest/analyze.html там вы увидите, если будут ошибки в криптографии и на каких браузерах не заработает.Последний раз редактировалось rown; 18.03.2016 в 17:29.
Спасибо сказали:
buninsan(18.03.2016), - 31.03.2016 18:00
не могу победить
./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.
- 31.03.2016 18:25Новичок


- Регистрация: 28.04.2014
- Сообщений: 11
- Репутация: 4
buninsan,
./letsencrypt-auto: No such file or directory
Зайдите в директорию, в которую установили letsencrypt. Туда куда сделали git clone. У меня это /opt/Спасибо сказали:
buninsan(31.03.2016), - 31.03.2016 20:03Разработка любых сайтов

- Регистрация: 08.06.2011
- Сообщений: 3,375
- Записей в дневнике: 1
- Репутация: 2506
Так же было бы хорошо добавить вот это
Код HTML:Плюс важно не забыть сменить http на https в роботс.тхт, сайтмапе, и в панелях вебмастеров. Потому что http и httpsсчитаются как зеркала - важно все быстро и правильно сделатьadd_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:; report-uri /csp-report";
Спасибо сказали:
buninsan(31.03.2016), - 31.03.2016 21:10
Самый отстойный способ использования LE. В итоге, сайты будут лежать всё это время, пока получается или обновляется сертификат.
Лучше всего делать через webroot. Пример:Код:Таким образом LE не будет поднимать свой сервер и не нужно будет вырубать свой. И никакого простоя сайтам../letsencrypt-auto certonly --webroot -w /var/www/letsencrypt/ --email name@gmail.com -d site.ru --rsa-key-size 4096
- 31.03.2016 22:17
спасибо всем все получилось!
- 01.04.2016 01:04
Прошу помощи у знатоков:
конфиг 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;
PHP код:server {
listen 443 ssl;
server_name site.com www.site.com;
ssl_certificate /etc/letsencrypt/live/site.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/site.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/site.com/fullchain.pem;
add_header Strict-Transport-Security "max-age=31536000; preload";
keepalive_timeout 65;
> ssl_session_cache shared:SSL:50m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
> ssl_dhparam /etc/ssl/private/dhparams_2048.pem;
ssl_stapling on;
ssl_stapling_verify on;
resolver 77.88.8.8 77.88.8.1 valid=300s;
resolver_timeout 2s;
error_log /var/log/httpd/domains/site.com.error.log error;
location / {
proxy_pass http://104.200.000.213:8080;
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|zip|tar|tgz|gz|rar|bz2|7z|aac|m4a|mp3|mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mpeg|mpg|wmv|exe|iso|dmg|swf)$ {
root /home/admin/web/site.com/public_html;
access_log /var/log/httpd/domains/site.com.log combined;
access_log /var/log/httpd/domains/site.com.bytes bytes;
expires max;
try_files $uri @fallback;
}
}
location /error/ {
alias /home/admin/web/site.com/document_errors/;
}
location @fallback {
proxy_pass http://104.200.000.213:8080;
}
location ~ /\.ht {return 404;}
location ~ /\.svn/ {return 404;}
location ~ /\.git/ {return 404;}
location ~ /\.hg/ {return 404;}
location ~ /\.bzr/ {return 404;}
include /home/admin/conf/web/nginx.site.com.conf*;
}
---------- Сообщение добавлено 23:04 ---------- Предыдущее 22:19 ----------
еще в догонку, если я буду клеить домены с www и без, то может быть сертификат на домен с www не нужен? как правильно поступить? первый раз вожусь с сертификатами, не имею опыта... - 01.04.2016 04:38
Какая версия nginx?
Там у него в инструкции был этот момент, но это совсем не обязательно делать. Можно забить.
Я отказался совсем от доменов с www, т.к. www нафиг не нужен, по сути это лишний элемент только. Стоят редиректы на версии без www. Соответственно для www не делал запросы на сертификаты.Спасибо сказали:
buninsan(01.04.2016),
Тэги топика:
Похожие темы
| Темы | Раздел | Ответов | Последний пост |
|---|---|---|---|
Сильно просели позиции в Яндексе и в Гугле. | Вопросы от новичков | 5 | 13.11.2014 17:44 |
Как вернуть сайт на прежние позиции в Яндексе и гугле? | Вопросы от новичков | 13 | 06.10.2014 19:20 |
В гугле плохие позиции | Вопросы от новичков | 19 | 29.08.2014 13:01 |
Позиции в Гугле | Вопросы от новичков | 9 | 28.08.2014 12:56 |
LI не показывает позиции в гугле | Общие вопросы поисковой оптимизации | 6 | 12.08.2012 18:19 |



