При работе с веб-сервисами 1С, такими как 1С:Контрагент (адрес api.orgregister.1c.ru), пользователи часто сталкиваются с ситуацией, когда сервис внезапно перестает работать. Чаще всего это проявляется как ошибка аутентификации или невозможность установить защищенное соединение TLS/SSL. Причина кроется в обновлении цепочки сертификатов на стороне серверов 1С, из-за чего локальная копия сертификатов (файл cacert.pem) или системное хранилище ОС перестают «доверять» узлу.
В данной статье мы подробно разберем, как восстановить работоспособность сервисов, проанализируем структуру файла cacert.pem и выясним, какие особенности платформы 1С влияют на проверку сертификатов.
Файл cacert.pem — это текстовый файл в формате PEM, содержащий список доверенных корневых центров сертификации. Платформа 1С использует его для проверки подлинности удаленных серверов при выполнении HTTP-запросов. Если сертификат веб-сервиса 1С обновился, а старого корня в файле нет (или он просрочен), соединение будет разорвано.
Выясним, где найти этот файл. Обычно он располагается в каталоге установленной платформы по следующему пути:
C:\Program Files (x86)\1cv8\номер_версии\bin\conf\cacert.pemC:\Program Files\1cv8\номер_версии\bin\conf\cacert.pem/opt/1cv8/x86_64/номер_версии/conf/).Важный нюанс: если на сервере установлено несколько версий платформы 1С, обновлять файл необходимо именно в той папке, из которой запускается рабочая база (служба ragent).
Для исправления проблемы разберем по шагам процесс добавления сертификата:
cacert.pem с помощью любого текстового редактора (например, Блокнот или Notepad++), предварительно создав его резервную копию.
-----BEGIN CERTIFICATE-----
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
-----END CERTIFICATE-----
После сохранения файла рекомендуется перезапустить службу сервера 1С или клиентское приложение, чтобы изменения вступили в силу.
Проанализируем работу современных версий платформы. Начиная с версии 8.3.8, 1С:Предприятие ведет себя иначе. Если конфигурация работает в режиме совместимости 8.3.8 и выше, платформа может игнорировать файл cacert.pem и обращаться к системному хранилищу сертификатов операционной системы.
Для пользователей ОС Windows это означает, что вместо редактирования текстовых файлов можно установить сертификат в систему:
digicert.com или 1С:ИТС)..crt или .cer).Этот способ более надежен, так как системные хранилища обычно обновляются автоматически вместе с обновлениями Windows.
В последние годы многие российские сервисы перешли на использование сертификатов, выданных Национальным удостоверяющим центром (НУЦ) Минцифры России. Если сервис api.orgregister.1c.ru перестает отвечать, возможно, причина в отсутствии цепочки доверия к российским корневым сертификатам.
Рассмотрим порядок действий для этой ситуации:
/etc/ssl/certs) и обновить кэш командой update-ca-certificates.Выясним причину ошибки, если стандартные методы не помогают. Для этого можно воспользоваться утилитой OpenSSL, которая позволит увидеть полную цепочку сертификатов, предъявляемую сервером 1С. Выполните команду в консоли:
openssl s_client -connect api.orgregister.1c.ru:443 -showcerts
Проанализировав вывод, вы увидите блоки BEGIN CERTIFICATE и END CERTIFICATE для каждого звена цепи. Если какой-то из промежуточных сертификатов отсутствует в вашем cacert.pem, именно его текст нужно скопировать и добавить в файл.
Обратите внимание: иногда проблема может быть связана не только с сертификатами, но и с версией протокола TLS. Если ваша операционная система устарела (например, Windows Server 2008 R2 без установленных обновлений), она может не поддерживать TLS 1.2, который обязателен для современных веб-сервисов 1С. В этом случае обновление сертификатов не поможет, пока не будет включена поддержка протокола в реестре Windows.
Мы рассмотрели несколько подходов к решению проблемы доверия сертификатам. Подведем итог совместной работы:
cacert.pem.USR1CV8 (от имени которой работает сервер 1С) должна иметь права на чтение файла cacert.pem и доступ к ветке реестра с сертификатами.Следите за актуальностью сертификатов, и ваши сервисы будут работать стабильно!