1 1 1 1 1 1 1 1 1 1 Rating 5.00 (2 Votes)

Установка Wildcard SSL-сертификата Lets Encrypt требует подтверждения прав в ДНС-записях. Самый простой способ - это связка скрипта Acme.sh и Cloudflare.

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) Регистрируемся в сервисе Cloudflare, если еще не зарегистрированы

4) Меняем ДНС-серверы у регистратора на сервера Cloudflare

NS1:

gail.ns.cloudflare.com

NS2:

plato.ns.cloudflare.com

5) Добавляем сайт в Cloudflare

Выбираем бесплатный план. Вводим домен прямо как есть, даже если кириллицей. Обычно сервис подхватывает на лету все записи, которые уже были в ДНС. Если нет - то добавляем нужные записи вручную. Подтверждаем и ждем, когда Cloudflare проверит обновление записей. Обычно это занимает несколько часов (до 24).

6) Получаем Account ID и Token

Пока ждем, записываем Account ID на странице с доменом в Cloudflare. Кроме того, нам понадобится Токен. Создаем его в Cloudflare: заходим в настройки профиля (правый верхний угол), выбираем вкладку Api Tokens. Создаем токен, нажав кнопку Create Token. Выбираем название, например, token1. Даем два вида прав: Zone.Zone - чтение (Read), Zone.DNS - правка (Edit). Zone Resources - All Zones. Записываем значение полученного токена.

7) Экспортируем токен и ID аккаунта на сервере

В консоли на сервере вводим команды

export CF_Token="сюда вводим значение токена"
export CF_Account_ID="сюда вводим Account ID"

8) Дожидаемся переноса зоны в Cloudflare

При выборе домена в Cloudflare должно быть сообщение вида:

Great news! Cloudflare is now protecting your site
Here are some commonly used options to review.

Это означает, что можно производить дальнейшие действия.

9) Получаем сертификат

Вводим команду

acme.sh --issue --dns dns_cf -d xn----htbbtlcjem.xn--p1ai -d *.xn----htbbtlcjem.xn--p1ai

Кириллический домен вводим в Punycode. Здесь будет утилита будет добавлять txt-запись в ДНС, а потом ее удалит.

10) Устанавливаем сертификат и ключ по нужным адресам

acme.sh --install-cert -d xn----htbbtlcjem.xn--p1ai -d *.xn----htbbtlcjem.xn--p1ai \
--key-file       /var/www/httpd-cert/kroemdom/xn----htbbtlcjem.xn--p1ai.key  \
--fullchain-file /var/www/httpd-cert/kroemdom/xn----htbbtlcjem.xn--p1ai.crt \
--reloadcmd     "service nginx force-reload"

У нас используется Nginx.

11) В Cloudflare ставим в настройках SSL Full (Strict)

Если этого не сделать, то шифрование будет неполным.

Вот и все. Теперь домен и все поддомены будут защищены SSL-шифрованием.

P.S.

12) Настраиваем перенаправление с http на https в .htaccess

Прописываем

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

 

Получение и установка бесплатного сертификата Let's Encrypt в ISPManager 4 с помощью acme.sh

Читайте пошаговое руководство по установке бесплатного сертификата Let's Encrypt.

Перенаправление с http на https через .htaccess

Узнайте, как сделать перенаправление с http на https через файл .htaccess после установки SSL-сертификата.
Back to Top