Установка SSL сертификата Letsencrypt
Подробная информация по установке и тонкой настройке Вы сможете прочитать на официальном сайте letsencrypt.org. А я начну рассказывать все пошагам:
1. Устанавливаем клиента для работы с Letsencrypt
$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto --help
2. Создаем SSL сертификат для конкретного домена
./letsencrypt certonly --webroot -w /var/www/html/domain.ru -d domain.ru -d www.domain.ru
В процессе выполнения скрипт запросит у Вас почтовый адрес администратора и подтверждение пользовательского соглашения.
Если все прошло удачно, то в папке в системе создастся папка etc/letsencrypt/live/domain.ru в которой и будут лежать файлы нашего сертификата
Проверить установлен сертификат можно командой:
openssl x509 -noout -text -in /etc/letsencrypt/live/createseo.ru/cert.pem | grep DNS (Проверка ДНС)
3. Генерация ключа криптозащиты длинной 4096
openssl dhparam -out /etc/letsencrypt/live/domain.ru/dhparam.pem 4096
Генерация занимает длительное время. У меня ушло примерно 10 минут.
4. Конфигурация Nginx
Приведу пример конфигурационного файла. domain.ru и ВАШ_IP замените на свои данные
server {
listen ВАШ_IP:80;
server_name domian.ru www.domian.ru;
rewrite ^ https://domian.ru$request_uri? permanent;
}
server {
listen ВАШ_IP:443 ssl spdy deferred;
server_name domian.ru www.domian.ru;
#rewrite ^ https://domian.ru$request_uri? permanent;
access_log /var/log/nginx/host.access.log main;
server_name_in_redirect off;
location / {
proxy_pass http://127.0.0.1:8880/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
proxy_connect_timeout 90;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|js)$ {
root /var/www/html/domian.ru;
}
ssl on;
ssl_session_timeout 24h;
ssl_certificate /etc/letsencrypt/live/domian.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domian.ru/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:
ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security "max-age=31536000;";
resolver 8.8.8.8 8.8.4.4 valid=300s;
ssl_stapling on;
ssl_stapling_verify on;
resolver_timeout 10s;
spdy_keepalive_timeout 300;
spdy_headers_comp 9;
ssl_dhparam /etc/letsencrypt/live/domian.ru/dhparam.pem;
}
5. Конфигурация Apache
1. В файле ssl.conf закомментировать строку Listen 443
2. В секцию VirtualHost добавить SetEnv HTTPS on. Для примера:
<VirtualHost 127.0.0.1:8880>
SetEnv HTTPS on
DocumentRoot /var/www/html/domain.ru
ServerName domain.ru
ServerAlias *. domain.ru www.domain.ru
</VirtualHost>
6. Перезапустить Apache и nginx
service httpd restart
service nginx restart
7. Правка файла robots.txt
Sitemap: https://domain.ru/sitemap.xml
Host: https://domain.ru
8. Добавление сайта в поисковые системы
В Yandex и Google вебмастерах добавить сайт с HTTPS или указать главным зеркалом сайт с сертификатом
9. Обновлять сертификат каждые 90 дней.
cd letsencrypt/ # перейти в директорию
letsencrypt git pull # скачать обновления репозитория
./letsencrypt-auto --help # проверить, что все нормально
sudo service nginx stop # остановить сервер
./letsencrypt-auto renew # ← обновить сертификаты
sudo service nginx start # запустить сервер
10. А дальше=)) Следить за позициями сайта .