# SSL-сертификаты

## Как настроить Let’s Encrypt для панели управления

Убедитесь, что имя хоста сервера указывает на IP-адрес сервера и что вы правильно указали имя хоста.

Выполнение следующих команд изменит имя хоста и сгенерирует сертификат Let’s Encrypt для панели управления:

```bash
v-change-sys-hostname host.domain.tld
v-add-letsencrypt-host
```

## Распространенные ошибки при использовании Let’s Encrypt

::: info
Из-за изменений в коде сообщение об ошибке было изменено. Следующий список будет расширен в будущем.
:::

| Ошибка | Сообщение |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `rateLimited` | Превышен предел скорости максимального количества запросов. Проверьте [https://crt.sh](https://crt.sh), чтобы узнать, сколько у вас активных сертификатов. |

### Let’s Encrypt статус проверки 400

При запросе SSL-сертификата вы можете столкнуться со следующей ошибкой:

```bash
Ошибка: Let’s Encrypt статус проверки 400. Подробности: Невозможно обновить вызов :: авторизация должна быть в ожидании
```

Это может означать несколько вещей:

1. Прокси-сервер Cloudflare включен, а настройка **SSL/TLS** установлена ​​на **Полный (строгий)**.

2. Nginx или Apache не перезагружаются правильно.
3. IPv6 настроен. Отключите IPv6 в DNS.
4. Возникла проблема с шаблоном.

В будущем мы надеемся улучшить отладку, но в настоящее время самый простой способ отладки этой проблемы — перейти в `/var/log/hestia/` и проверить нужный файл журнала (`LE-{user}-{domain}.log`), который должен появиться после запроса сертификата.

Найдите **Шаг 5**, где вы увидите что-то похожее на следующее:

```bash
==[Шаг 5]==
- status: 200
- nonce: 0004EDQMty6_ZOb1BdRQSc-debiHXGXaXbZuyySFU2xoogk
- validation: pending
- details:
- answer: HTTP/2 200
server: nginx
date: Wed, 21 Apr 2021 22:32:16 GMT
content-type: application/json
content-length: 186
boulder-requester: 80260362
cache-control: public, max-age=0, no-cache
link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
link: <https://acme-v02.api.letsencrypt.org/acme/authz-v3/12520447717>;rel="up"
расположение: https://acme-v02.api.letsencrypt.org/acme/chall-v3/12520447717/scDRXA
replay-nonce: 0004EDQMty6_ZOb1BdRQSc-debiHXGXaXbZuyySFU2xoogk
x-frame-options: ЗАПРЕТИТЬ
strict-transport-security: max-age=604800

{
"type": "http-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/12520447717/scDRXA",
"token": "9yriok5bpLtV__m-rZ8f2tQmrfeQli0tCxSj4iNkv2Y"
}
```

Перейдя по URL в ответе JSON, вы получите больше информации о том, что пошло не так.

### Другие советы по отладке Let’s Encrypt

Попробуйте использовать [Let’s Debug](https://letsdebug.net):

1. Введите свое доменное имя.
2. Убедитесь, что выбран HTTP-01
3. Запустите тест

После завершения теста будет показано сообщение об ошибке или успешном выполнении, содержащее дополнительную информацию.

## Могу ли я включить прокси Cloudflare с Let’s Encrypt?

Да, вы можете использовать сертификаты Let’s Encrypt с прокси Cloudflare, однако вам необходимо выполнить некоторые специальные шаги:

1. Отключите прокси Cloudflare для нужного домена.

2. Подождите не менее 5 минут, пока не истечет срок действия кэшей DNS.
3. Запросите сертификат через панель управления или используйте команду CLI.
4. Повторно включите прокси-сервер.
5. На вкладке **SSL/TLS** переключитесь на **Полный (строгий)**.

## Могу ли я использовать SSL-сертификат Cloudflare Origin CA?

1. Создайте сертификат Origin CA, [выполнив следующие шаги](https://developers.cloudflare.com/ssl/origin-configuration/origin-ca#1-create-an-origin-ca-certificate).
2. После создания введите ключи SSL на странице **Изменить веб-домен**.
3. В поле **Центр сертификации SSL / промежуточный** введите [этот сертификат](https://developers.cloudflare.com/ssl/static/origin_ca_rsa_root.pem).
4. На вкладке **SSL/TLS** в Cloudflare переключитесь на **Полный (строгий)**.