Здравствуйте!
Я сам не являюсь кем то связанным непосредственно с 1С, я обычный системный администратор. И у меня есть сервер на котором крутится 1С. Это centos6.10 x86-64. На нём установлена 1С версии 8.3.18.1483 конфигурация "Медицина. Больничная Аптека"
Некоторое время назад программист 1С озадачил меня тем что "нет связи с внешними серверами 1С". Т.е. в разделе Администрирование - Интернет поддержка и сервисы если нажать Монитор портала 1С ИТС, то программа думает около 10 минут, затем в журнале регистрации:
ошибка
При обращении по URL: https://update-api.1c.ru/update-platform/programs/update/ping
Подключение проводится на сервере 1С:Предприятие <1cv8srv.locall>.
Выполнено обращение к несуществующему ресурсу на сервере update-api.1c.ru
или возникли неполадки на удаленном сервере.
Журнал диагностики:
Выполняется проверка доступности сервера.
Описание диагностируемой ошибки см. в следующем сообщении журнала.
Параметры прокси-сервера в ИБ: Использовать системные настройки прокси-сервера.
Соединение выполняется без использования прокси-сервера.
1) Удаленный сервер update-api.1c.ru доступен:
> ping -c 2 -w 500 update-api.1c.ru
PING update-api.1c.ru (185.12.154.20) 56(84) bytes of data.
--- update-api.1c.ru ping statistics ---
500 packets transmitted, 0 received, 100% packet loss, time 500000ms
Показать
Так же если в этот момент снимать tcpdump то видна следующая ситуация на скриншоте wireshark, устанавливается соединение tls, client hello, server hello, но рукопожатия не происходит, т.к. наш сервер выдаёт ошибку unknown-ca. и после этого соединение рвётся и наш сервер безответно шлёт icmp request в данном случае на ipdate-api.1c.ru.
Вообще у меня вопрос по этим безответным пингам, там в скрипте я так понимаю забита гвоздями проверка доступности ресурса update-api.1c.ru посредством пинга, но этот сервер не отвечает на пинги в принципе.
Из того что я пробовал:
подкидывал корневые секртификаты по цепочке которая сейчас в сертификате серверов 1с, подкидывал как в саму систему - на что openssl говорил что это всё дубликаты, добавлял в файл cacerts.pem в директории с установленой платформой 1С.
Добавил в конфиг строчку: IgnoreServerCertificatesChainRevocationSoftFail=true - что так же не дало никакого результата.
Техподдержка ничего внятного кроме как обновляйте серверную ОС не ответила.
В связи с этим у меня остались вопросы:
Почему в процедурах которые обращаются к серверам *.1c.ru используется проверка пинга в качестве проверки доступности сервера? Это же вообще не логично, особенно как раз в такой ситуации когда сервер не отвечает на пинг.
Возможно проблема как раз в этих процедурах которые обращаются к серверам 1С и эти процедуры должны быть как то обновлены?
Какие ещё могут быть варианты диагностики или починки этой проблемы кроме как обновление серверной ОС?
Всё, вопрос снялся. Как удалось всё же вычитать в доках - файлс cacert.pem больше не используется в 1C на linux, использует системное хранилище. Нужно было корректно добавить корневые сертификаты Digicert в доверенные в систему.
(1) Сертификаты от 1с нужно к себе добавить из файла cacert.pem в bin 8.3.18.1483. Где в centos6.10 x86-64 это надо сделать не скажу: я занимаюсь непосредственно 1С, а не обычный системный администратор.
(2) так я же в посте писал что добавлял сертификаты корневые в файл cacert.pem который в директории /opt/1cv8/x86_64/8.3.18.1483/ директории, и из этого файла добавлял сертификаты в систему. но не помогает.
Мне просто не понятно как там получается, что я из системы делаю запрос https://update-api.1c.ru/update-platform/programs/update/ping - мне приходит ответ "ОК", а из 1с - unknown-ca и никакого валидного ответа. При том что в системе присутствуют те же сертификаты что и в cacert.pem..
Всё, вопрос снялся. Как удалось всё же вычитать в доках - файлс cacert.pem больше не используется в 1C на linux, использует системное хранилище. Нужно было корректно добавить корневые сертификаты Digicert в доверенные в систему.