Let's Encrypt - бесплатный сертификат, который поможет Вашему сайту перейти с http на https. Чтобы с ним работать, есть множество утилит, также можно вручную через сторонние сайты все делать. Но мы будем рассматривать самый простой способ. Все команды выполняем от имени root.
1) Создание самоподписанного сертификата в ISPManager 4.
Заходим в панель ISPManager 4, ставим для пользователя права на SSL. В настройках домена в панели ISPManager ставим галочку SSL, порт не меняем (443) и сертификат выбираем "Создать новый самоподписанный". По идее, можно зайти уже на сайт по протоколу https, но браузеры будут ругаться на сертификат, мол, он самоподписанный.
2) Скачиваем и устанавливаем саму утилиту acme.sh
Привычный wget почему-то не сработал и начал ругаться на https:
wget -O - https://get.acme.sh | sh
Но зато сработало следующее
curl https://get.acme.sh | sh
3) Получаем сертификат
Указываем домен с www и без www:
acme.sh --issue -d seo58.ru -d www.seo58.ru -w /var/www/seo/data/www/seo58.ru
4) Устанавливаем сертификат
Устанавливаем сертификаты в нужную директорию с нужными именами. Тут главное - не перепутать ключ и сам сертификат! Так как у нас nginx, выглядит это следующим образом:
acme.sh --install-cert -d seo58.ru \
--key-file /var/www/httpd-cert/seo/seo58.ru.key \
--fullchain-file /var/www/httpd-cert/seo/seo58.ru.crt \
--reloadcmd "service nginx force-reload"
5) Делаем редирект в .htaccess и исключаем папку .well-known/acme-challenge из редиректа, поскольку при обновлении будет проверяться право на владение по http
RewriteEngine On
RewriteRule "^.well-known/acme-challenge" - [L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Вот и все! Теперь можно перейти к последнему шагу - в Яндекс.Вебмастере перейти в раздел "Переезд сайта" и поставить галочку "Добавить HTTPS".
Обновление сертификата будет происходить автоматически: acme.sh сама прописывается в Cron.
Материалы по теме:
https://github.com/Neilpang/acme.sh
Подробнее...