← Cloudflare SSL/TLS / ssl / keyless-ssl
Устранение неполадок
Проверьте журналы
Чтобы проверить журналы, используйте команду, похожую на следующую.
- systemd:
sudo journalctl -f -u gokeyless - upstart/sysvinit:
sudo tail -f /var/log/gokeyless.log
Включение отладочного логирования
Чтобы включить отладочное логирование, используйте команду, подобную следующей.
cd /etc/keyless
sudo -u keyless gokeyless --loglevel 0При запуске в контейнере gokeyless является основным процессом контейнера (PID 1), поэтому приведенная выше команда host/systemd не применяется. Вместо этого задайте уровень логирования при запуске контейнера и считывайте логи из среды выполнения контейнера:
# Set verbosity via environment variable
docker run ... -e KEYLESS_LOGLEVEL=0 ghcr.io/cloudflare/gokeyless:latest
# Read logs
docker logs -f <CONTAINER> # or: kubectl logs -f <POD>В браузерах возникает сбой TLS-соединения при попытке подключения
- Убедитесь, что ваш сервер ключей доступен извне вашей сети (tcp/2407).
- Предоставьте файл захвата пакетов:
sudo tcpdump -nni <interface> -s 0 -w keyless-$(date +%s).pcap port 2407
Клиенты подключаются, но сразу же разрывают соединение
Если вы выполните gokeyless с включённым отладочным логированием, и видите в логах примерно следующее:
[DEBUG] connection 162.158.57.220:37490: reading half closed by client
[DEBUG] connection 162.158.57.220:37490: server closing connection
[DEBUG] connection 162.158.57.220:37490 removed
[DEBUG] spawning new connection: 162.158.57.220:37862
[DEBUG] connection 162.158.57.220:37862: reading half closed by client
[DEBUG] connection 162.158.57.220:37862: server closing connection
[DEBUG] connection 162.158.57.220:37862 removedЭти журналы, скорее всего, указывают на то, что сервер ключей не использует подходящий сервер или .PEM файл, и клиент разрывает соединение после обмена сертификатами. Сертификат должен быть подписан ЦС Keyless SSL, а в SAN должно быть указано имя хоста keyless-сервера. Ниже приведён корректный пример для keyless-сервера, расположенного по адресу 11aa40b4a5db06d4889e48e2f.example.com (обратите внимание на Subject Alternative Name и Authority Key Identifier):
openssl x509 -in server.pem -noout -text -certopt no_subject,no_header,no_version,no_serial,no_signame,no_validity,no_subject,no_issuer,no_pubkey,no_sigdump,no_aux | sed -e 's/^ //'X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier:
DD:24:97:F1:A9:F1:4C:73:D9:1B:44:EC:A1:C3:10:E9:F0:41:98:BB
X509v3 Authority Key Identifier:
keyid:29:CE:8F:F1:9D:4C:BA:DE:55:78:D7:A6:29:E9:C5:FD:1D:9D:21:48
X509v3 Subject Alternative Name:
DNS:11aa40b4a5db06d4889e48e2f.example.com
X509v3 CRL Distribution Points:
Full Name:
URI:http://ca.cfdata.org/api/v1/crl/key_serverБинарный файл gokeyless не может загрузить файл CA
Убедитесь, что права доступа ко всем ключам и сертификатам, установленным на сервере, заданы правильно.
Keyless затрагивает непредвиденные хосты
Вам нужно будет либо предоставить сертификат только для этих хостов, либо изменить приоритет сертификата в разделе SSL/TLS app панели управления Cloudflare.
Серверы ключей в Windows
На данный момент Cloudflare предоставляет пакеты только для поддерживаемых дистрибутивов GNU/Linux, указанных в репозиторий пакетов Cloudflare ↗.
Сервер ключей распространяется с открытым исходным кодом, поэтому вы можете попытаться собрать и развернуть его самостоятельно, но запуск в Windows не поддерживается, и в этом случае Cloudflare не сможет помочь вам при возникновении проблем.
Поддержка нескольких доменов на сервере ключей
Один сервер ключей может обслуживать несколько доменов. Добавьте закрытый ключ каждого сертификата в private_key_stores блок в gokeyless.yaml, либо передайте их с --private-key-dirs / --private-key-files. См. Обслуживайте несколько закрытых ключей для получения подробностей.
hostname и zone_id поля являются одиночными строковыми значениями, которые используются только при регистрации. Обновлять их для дополнительных доменов не требуется.
Дополнительные вопросы
Свяжитесь с вашей командой Account Team или Служба поддержки Cloudflare.