Skip to content
EN

ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED: решение

Коротко:

ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED появляется в mTLS (mutual TLS) когда сервер запрашивает клиентский сертификат, но клиент не смог подписать challenge. Причины: смарт-карта/eToken заблокирован, приватный ключ повреждён, Chrome не нашёл cert в хранилище, expired cert. Исправление: проверить сертификат в ОС, разблокировать смарт-карту, переустановить cert.

Эта ошибка блокирует HTTPS-доступ. Ниже: причины, исправление, рабочий конфиг, FAQ.

Проверить SSL своего сайта →

Причины ошибки

  • Смарт-карта / eToken заблокированы после неверного PIN
  • Приватный ключ повреждён или удалён
  • Chrome не видит клиентский сертификат в хранилище ОС
  • Клиентский cert истёк
  • Сервер требует cert от определённого CA, ваш — от другого
  • CryptoPro/JaCarta драйверы устарели (RU случай)

Пошаговое исправление

  1. Проверьте cert в ОС: Windows — certmgr.msc, macOS — Keychain, Linux — ~/.pki/nssdb
  2. Смарт-карта: извлеките и вставьте заново, введите PIN внимательно
  3. Переустановите сертификат из pfx/p12: File → Install Certificate
  4. Обновите драйверы смарт-карты (CryptoPro, JaCarta, Rutoken)
  5. Для теста: в Chrome зайдите в chrome://settings/certificates — увидите установленные
  6. Мониторьте client-cert сервисы через Enterno Monitor

Проверить SSL-сертификат →

Пример: правильная настройка TLS в nginx

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers off;

    ssl_stapling        on;
    ssl_stapling_verify on;
}

Смежные SSL-ошибки

ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED — краткий ответ

Ошибка ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED возникает, когда клиентский сертификат не может быть проверен на сервере при установлении соединения mTLS (Mutual TLS). Это может быть вызвано неправильной конфигурацией сертификатов или их недействительностью. Для решения проблемы проверьте, что клиентский сертификат подписан доверенным центром сертификации (CA) и что он правильно установлен на клиентской стороне. Используйте команды openssl s_client -connect example.com:443 -cert client.crt -key client.key для диагностики.

Причины возникновения ошибки и способы её устранения

Ошибка ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED может возникать по нескольким причинам, связанным с настройками и конфигурацией клиентского и серверного сертификатов. Рассмотрим более подробно основные причины и шаги по их устранению.

1. Неправильная подпись клиентского сертификата

Если клиентский сертификат был подписан центром сертификации, который не доверен серверу, это может привести к ошибке. Убедитесь, что сервер имеет доступ к цепочке сертификатов, включая корневой сертификат CA.

2. Несоответствие настроек mTLS

Проверьте, правильно ли настроены параметры mTLS на сервере. Например, в nginx необходимо убедиться, что директивы ssl_client_certificate и ssl_verify_client правильно указаны:

ssl_client_certificate /etc/ssl/certs/ca.crt;
ssl_verify_client on;

Если сервер не запрашивает клиентский сертификат, это также приведет к ошибке.

3. Проблемы с форматом сертификата

Убедитесь, что сертификаты находятся в правильном формате. Часто используются форматы PEM или DER. Для преобразования сертификатов в формат PEM можно использовать команду:

openssl x509 -in certificate.der -out certificate.pem -outform PEM

4. Время действия сертификата

Проверьте, не истек ли срок действия клиентского сертификата. Для этого используйте команду:

openssl x509 -in client.crt -noout -dates

Если срок действия истек, вам необходимо получить новый сертификат.

5. Неправильные права доступа к файлам сертификатов

Убедитесь, что файлы сертификатов и ключей имеют правильные права доступа. Сервер должен иметь возможность читать эти файлы. Например, для nginx это может быть:

chmod 600 /etc/ssl/private/client.key

6. Проверка конфигурации с помощью OpenSSL

Используйте openssl для проверки конфигурации SSL/TLS. Например, команда:

openssl s_client -connect example.com:443 -cert client.crt -key client.key

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

7. Логи сервера

Обратите внимание на логи вашего веб-сервера. Например, в nginx можно включить детализированные логи:

error_log /var/log/nginx/error.log debug;

Это поможет вам выявить конкретные причины возникновения ошибки.

Заключение

Ошибка ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED может быть устранена путем проверки и настройки сертификатов, а также конфигурации серверного окружения. Следуя описанным шагам, вы сможете диагностировать и исправить проблему, обеспечив корректную работу mTLS.

СертификатСрок, издатель, домены (SAN)
ЦепочкаПроверка промежуточных и корневых CA
TLS-протоколВерсия TLS и набор шифров
УязвимостиHeartbleed, POODLE, слабые шифры

Почему нам доверяют

TLS 1.3
поддержка
Полная
цепочка CA
<2с
результат
30/14/7
дней до истечения

Как это работает

1

Введите домен

2

Проверка цепочки TLS

3

Дата истечения и уязвимости

Что проверяет SSL-тест?

SSL/TLS — протокол шифрования, который защищает данные между браузером и сервером. Наш инструмент анализирует сертификат, цепочку доверия, версию TLS и известныеуязвимости.

Детали сертификата

Издатель, срок действия, алгоритм подписи, покрываемые домены (SAN) и тип валидации (DV/OV/EV).

Цепочка доверия

Проверка полной цепочки: от конечного сертификата через промежуточные до корневого CA.

Анализ TLS

Версия протокола (TLS 1.2/1.3), набор шифров, поддержка Perfect Forward Secrecy (PFS).

Оповещения об истечении

Создайте монитор — получайте уведомления в Telegram и email за 30/14/7 дней до истечения.

DV vs OV vs EV сертификаты

DV (Domain Validation)
  • Подтверждение только владения доменом
  • Выдаётся за минуты автоматически
  • Бесплатно через Let's Encrypt
  • Подходит для большинства сайтов
  • Самый распространённый тип
OV / EV
  • Проверка организации (OV) или расширенная проверка (EV)
  • Выдаётся за 1-5 рабочих дней
  • Стоимость от $50 до $500/год
  • Для финансов, e-commerce, госсайтов
  • Повышает доверие пользователей

Кому это нужно

DevOps

мониторинг SSL-сертификатов

Безопасность

аудит TLS-конфигурации

SEO

HTTPS как фактор ранжирования

E-commerce

доверие покупателей

Частые ошибки

Истёкший сертификатБраузеры блокируют сайт с истёкшим SSL. Настройте автопродление или мониторинг.
Неполная цепочка сертификатовБез промежуточного CA некоторые браузеры и боты не смогут верифицировать сертификат.
Mixed content на HTTPS-сайтеHTTP-ресурсы на HTTPS-странице — замок в браузере пропадает, снижается доверие.
Использование TLS 1.0/1.1Устаревшие версии TLS содержат известные уязвимости. Используйте TLS 1.2+ или 1.3.
Несовпадение домена в сертификатеСертификат должен покрывать все домены сайта, включая www и поддомены.

Лучшие практики

Настройте автопродлениеLet's Encrypt + certbot с cron — сертификат обновляется автоматически каждые 60-90 дней.
Включите HSTSЗаголовок Strict-Transport-Security заставляет браузер всегда использовать HTTPS.
Используйте TLS 1.3TLS 1.3 быстрее (1-RTT handshake) и безопаснее — убраны устаревшие шифры.
Мониторьте срок действияСоздайте монитор на Enterno.io — получайте уведомления задолго до истечения.
Проверяйте цепочку после обновленияПосле обновления сертификата убедитесь, что промежуточные сертификаты установлены.

Получите больше с бесплатным аккаунтом

Мониторинг SSL-сертификатов, история проверок и уведомления за 30 дней до истечения.

Зарегистрироваться (FREE)

Больше по теме

Источники

Часто задаваемые вопросы

Что такое mTLS?

Mutual TLS — двусторонняя аутентификация. Сервер проверяет клиентский сертификат перед выдачей ответа. Используется в банкинге, enterprise API, госуслугах.

Почему Chrome не запросил выбор сертификата?

Если подходящий cert один — Chrome использует автоматически. Если несколько или ни одного — появится dialog. Поведение настраивается в chrome://policy.

Ошибка только в Chrome, в Firefox работает — почему?

Firefox имеет собственное cert store (NSS), независимое от ОС. Chrome использует системное. Разные хранилища = разные доступы.

Как импортировать p12 в Chrome?

chrome://settings/certificates → Your certificates → Import. Введите пароль p12. Cert появится в списке и станет доступным для mTLS.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.