# FAQ по сертификатам

# Как подключить SSL для домена

Сертификат выписывается автоматически при добавление домена.

Для работы функции автоматического выписывания сертификата метод установки должен быть Approved (v2.20) и выше.

В случае ошибки выпуска сертификата вам необходимо обновить конфигурацию сервера используя эту инструкцию.

# Как подключить SSL для домена из командной строки на сервере

Если вы отказались от установки сертификата при первом запуске, то можете установить позже с помощью команды:

cd /root
curl keitaro.io/enable-ssl.sh > run; bash run -D domain.com

Важно! Если не получилось установить сертификат с первого раза - проверьте, привязан ли домен по А-записи к серверу с трекером. Если все записи на месте, запустите установку повторно через несколько часов, или обратитесь в нашу службу поддержки, мы поможем разобраться.

# Установка SSL сразу для нескольких доменов

curl keitaro.io/enable-ssl.sh > run; bash run -D domain.ru,domain2.ru,domain3.ru

Скрипт не будет работать, если сервер не был настроен скриптом автонастройки.

Важно! Если не получилось установить сертификат с первого раза - проверьте, привязан ли домен по А-записи к серверу с трекером. Если все записи на месте, запустите установку повторно через несколько часов, или обратитесь в нашу службу поддержки, мы поможем разобраться.

# Как подключить SSL для домена, настроенного через CloudFlare?

Когда домен настроен на CloudFlare, то SSL настраивается на самом CloudFlare. У домена нужно включать поддержку SSL на самом CloudFlare, настройки сертификата - Flexible или Full.

# Не выписывается SSL сертификат из трекера

  1. Проверяем к какому IP привязан домен (А и AAAA записи):
  • заходим на страницу домена у регистратора, у которого покупали домен, и проверяем - должна быть только одна DNS запись типа A. IP адрес в A записи должен быть точно таким же, что и IP адрес вашего сервера с Keitaro.
  • не должно быть DNS записей типа AAAA.

Проверить DNS записи можно в DNS чекере (например здесь), либо выполнив следующие команды в любом терминале, логиниться на сервер при это не нужно:

  • dig A yourdomain.com +short

Этой командой мы запросим все A записи для домена yourdomain.com

  • dig AAAA yourdomain.com +short

Эта команда запрашивает все AAAA записи для домена yourdomain.com.

  1. Проверяем, какая версия установки трекера в Обслуживание - Состояние. В строке Installation Method версия должна быть 2.21.0 и выше. Если версия ниже, то нужно сделать апгрейд конфигурации сервера.

  2. Если используете CloudFlare, убедитесь, что в настройках сертификата выбран Full или Flexible сертификат.

  3. Проверьте Обслуживание - Логи - SSL сертификаты, там будет информация о том, выписался ли сертификат, и если нет, то с какой ошибкой закончился. Исправьте ошибку, если можете сделать это сами, или напишите в нашу службу поддержки, мы поможем.

  4. Если все пункты выше выполнены, а сертификат не выписывается - удалите домен и добавьте его еще раз. Обратите внимание, что при удалении домена, если к нему припаркована кампания, она не будет какое-то время работать по этому домену.

  5. Если при соблюдении всех условий (А-запись только одна, нет лишних DNS записей) сертификат не выписывается, попробуйте выписать сертификат в терминале, предварительно залогинившись на сервер по ssh.

  6. Если никакое из выполненных действий не помогло, обратитесь в нашу службу поддержки.

# Ошибка "Во время выпуска сертификата произошла неизвестная ошибка."

Выполните:

curl -fsSL https://dl.eff.org/certbot-auto > certbot-auto 
chmod a+x ./certbot-auto
./certbot-auto --install-only
mv -f certbot-auto /usr/bin/certbot

Когда спросит Is this ok [y/d/N]: , введите «y». Теперь попробуйте снова выписать сертификат.

# Сертификат выписывается, но в браузере показывает, что невалидный

Если уже подключено больше 100 доменов, необходимо удалить старые, неиспользуемые. Перечислите домены для удаления в первой строке и выполните:

curl -sSL https://dl.eff.org/certbot-auto > certbot-auto
chmod a+x ./certbot-auto
./certbot-auto --install-only
mv certbot-auto /usr/bin/certbot-2

# Удаление SSL сертификата указанного домена

В том случае, если Вам потребуется убрать SSL сертификат с домена Вашего сайта, можете воспользоваться нашим скриптом удаления сертификата. Скрипт принимает доменное имя в качестве параметра. Сертификат SSL Вы можете удалить следующей командой:

curl https://raw.githubusercontent.com/apliteni/centos_provision/current/scripts/delete-ssl.sh > delete-ssl; bash delete-ssl domain.com

Где domain.com - это имя Вашего домена, у которого хотите отозвать и удалить сертификат. Будет произведено удаление сертификатов и их файлов, ключей шифрования сертификата указанного домена, а также файлов конфигурации данных сайтов в nginx (расположенных по пути /etc/nginx/conf.d/).

# Ошибка certificate name missmatch при проверке SSL сертификата. Проверка и оценка правильности SSL сертификата

При настройке SSL сертификата припаркованного домена, всегда необходимо проверить правильность настройки DNS записей и проверить или сам SSL cертификат корректно выписался и не ссылается на другой домен и он доступен через https Для проверки SSL сертификата воспользуемся ресурсом ssllabs.com/ssltest и вводим имя домена который припарковали в трекер и на который выписали SSL сертификат. Если Вы не корректно настроили А записи трекера - то тут так же сможете увидеть куда ссылаются А записи Вашего домена. У Вас может быть больше А записей только в случае, если Вы проксируете домен через CloudFlare, в любом другом случае - у Вас должна быть только одна А запись домена которая смотрит на IP трекера.

Если же видим ошибку Certificate Name Missmatch - она говорит о том что у Вас на сервере есть проблемный или отсутствующий сертификат. В таком случае необходимо найти проблемный SSL сертификат, после чего удалить с сервера домен с данным сертификатом и пере выпустить его еще раз.

# Проверка IP или доменного имени в бане РКН

В отдельных случая DNS серверы CloudFlare периодически попадают в блок РКН. Соответственно если Вы настраивает проксирование в CF, но при этом у Вас не работает с гео РФ ссылки кампании, сертификат SSL не выписывается, сайт отображается не корректно или частично не доступен - очень вероятно что IP адрес прокси-серверов CF забанен РКН и это можно проверить.
Самый простой способ - проверить доступность Вашего ресурса с помощью проверки DNS например: https://check-host.net/check-dn

Если видите что у Вас на территории гео РФ везде ошибки - необходимо убрать домен из CF либо же не использовать проксирование с этим IP адресом.

Можно проверить домен или IP сервера с трекером, а так же проверить IP адреса прокси-серверов через бота в телеграмме. Добавьте rknblockbot и просто введите IP сервер трекера, имя домена который используете, или IP прокси-сервера от CF - в случае бана Вы увидите сообщение о том что IP заблокирован и идентификатор записи. Если обнаружили что Ваш IP забанен - нужно его сменить или перенести трекер на сервер с другим IP адресом, которого еще нет в бане РКН. В противном случае Ваши ресурсы будут частично доступны или недоступны на территории гео РФ.

# Проверка корневого сертификата из цепочки ключа на валидность

Бывают случаи, когда SSL сертификат успешно выписывается на имя припаркованного домена, но при этом домен отказывается открываться через https, а проверка валидности SSL сертификата выдает ошибку certificate name mis match. Данная ошибка говорит о том, что имя домена, на который был выпущен SSL сертификат, имеет конфликт в имени с цепочкой сертификатов ранее установленного сертификата (купленный сертификат, либо же иной сертификат который поставлялся бесплатно с доменом и требовал ручной установки).

Характерным признаком такой ошибки будет то, что при проверке сертификата - он будет ссылаться на имя домена, корневой сертификат которого ранее был установлен на сервере (это мог быть платный сертификат который устанавливается вручную или генерируется по цепочке ключей например). В таком случае необходимо удалить абсолютно все ключи этого корневого сертификата (который был установлен вручную). Сделать это Вы можете командой удаления сертификатов, проверить же на какое имя ссылается ключ из цепочки сертификатов Вы можете командой

openssl verify -verbose -x509_strict -CAfile имя_файла_ключа.pem

После чего Вы получите следующий результат:

имя_файла_ключа.pem: CN = problemcertificate.ru
error 20 at 0 depth lookup:unable to get local issuer certificate

Данная ошибка говорит о том, что не получилось проверить SSL сертификат у домена локально у выпускающего сертификата. В таком случае необходимо удалить данные ключи сертификата и конфигурационные файлы nginx этого домена, после чего удалить и выпустить все домены.

# Лимиты

Let's Encrypt накладывает ряд ограничений:

# Превышен лимит запросов

В час может быть пять неудачных попыток выписать сертификат. Если вы достигли данного лимита - увидите эту ошибку. В таком случае нужно ожидать один час до повторного запроса на выдачу сертификата

# Выпуск сертификата заблокирован

После 25 неудачных попыток выписать сертификат мы блокируем данный домен на выпуск сертификата, чтобы не попасть в вечный цикл попытки выписать сертификат. Если вы видите эту ошибку - выполните апгрейд конфигурации сервера, удалите из трекера этот домен и добавьте его заново, дождитесь повторного выпуска сертификата