1С: Несовпадение отпечатка сертификата в OpenID Connect (Thumbprint Mismatch)
Механизм проверки отпечатков сертификатов (Certificate Pinning) в 1С
Для предотвращения атак типа Man-in-the-Middle (MitM) и подмены провайдера аутентификации в конфигурационном файле публикации информационной базы default.vrd (или в параметрах кластера 1С) может быть явно зафиксирован отпечаток (Certificate Thumbprint / SHA-1 / SHA-256 Fingerprint) открытого ключа сервера аутентификации. Если на стороне Identity Provider (Keycloak / ЕСИА / ADFS) произошел плановый перевыпуск SSL/TLS-сертификата или ротация ключа подписи токенов, а в конфигурации 1С остался старый отпечаток, сервер блокирует соединение с ошибкой:
«Ошибка проверки подлинности сервера: Не совпадает отпечаток сертификата провайтеля OpenID / Certificate thumbprint mismatch / The remote certificate is invalid according to the validation procedure»
Бизнес-риски
Моментальная блокировка всей компании после ночной ротации SSL-сертификатов на шлюзах безопасности или обновления Let's Encrypt сертификата IdP.
Сравнение типов отпечатков
| Тип хеша | Формат представления | Использование в 1С |
|---|---|---|
SHA-1 Thumbprint | 40 шестнадцатеричных символов (HEX) | Стандартный формат для привязки сертификатов в default.vrd. |
SHA-256 Fingerprint | 64 HEX-символа | Используется в современных версиях платформы 1С 8.3.23+. |
Регламент обновления отпечатков сертификатов в 1С
Сценарий 1: Извлечение актуального отпечатка сертификата IdP через OpenSSL
Получите точный отпечаток нового сертификата с сервера провайдера:
# Получение SHA-1 отпечатка SSL-сертификата удаленного сервера:
echo | openssl s_client -connect idp.corp.local:443 2>/dev/null | \
openssl x509 -noout -fingerprint -sha1
# Вывод: SHA1 Fingerprint=9A:4B:12:3C:D4:...:89:FE
# Получение SHA-256 отпечатка:
echo | openssl s_client -connect idp.corp.local:443 2>/dev/null | \
openssl x509 -noout -fingerprint -sha256Сценарий 2: Обновление отпечатка в файле публикации default.vrd
Удалите двоеточия из полученного отпечатка и обновите конфигурационный файл веб-публикации базы 1С:
# Откройте default.vrd в каталоге публикации веб-сервера (например, /var/www/trade/default.vrd):
sudo nano /var/www/trade/default.vrd
# Найдите параметр certificateThumbprint и укажите актуальный HEX-хеш:
<openidConnect>
<provider url="https://idp.corp.local/realms/corp/.well-known/openid-configuration"
clientId="1c-trade"
certificateThumbprint="9A4B123CD4...89FE"/>
</openidConnect>Сценарий 3: Перезапуск пула веб-сервера для сброса кэша сертификатов
# Для веб-сервера Apache:
sudo systemctl reload apache2 # Debian/Ubuntu
sudo systemctl reload httpd # RHEL/RED OS
# Для веб-сервера IIS (Windows Server):
iisreset /noforceТиповые ошибки администраторов
- Наличие пробелов или двоеточий в значении certificateThumbprint: Платформа 1С требует сплошную строку HEX-символов без разделителей (например,
9A4B12..., а не9A:4B:12...). - Использование Let's Encrypt с автообновлением каждые 90 дней при жестко заданном thumbprint: Жесткая фиксация отпечатка (pinning) приводит к падению входа каждые 3 месяца. Для публичных валидных сертификатов параметр
certificateThumbprintлучше не заполнять, полагаясь на проверку цепочки CA.
Инженеры ITSTM настроят автоматизированное обновление сертификатов через ACME/Let's Encrypt без прерывания рабочих сессий пользователей.
Частые вопросы (FAQ)
Обязательно ли указывать certificateThumbprint в файле default.vrd?
Нет, это опциональный параметр повышенной безопасности. Если он не указан, 1С проверяет сертификат по стандартной системной цепочке доверенных корневых центров (CA).
Почему после удаления параметра certificateThumbprint ошибка сохраняется?
Веб-сервер кэширует конфигурацию default.vrd в памяти рабочих процессов. Выполните полную перезагрузку службы веб-сервера (systemctl restart apache2).
Чувствителен ли отпечаток к регистру букв (A-F)?
Рекомендуется указывать символы в верхнем регистре (UPPERCASE) во избежание сбоев в строгом строковом парсере платформы 1С.
Какой сертификат проверять, если IdP работает за SSL-терминатором (Nginx/Cloudflare)?
Необходимо брать отпечаток сертификата, установленного на внешнем SSL-терминаторе, с которым сервер 1С непосредственно устанавливает TLS-сессию.