Имеем веб сервер Apache2.4 на Centos 7, работает по https. Сертификат самоподписанный. На нем опубликованы 2-е базы.
Сертификат создавал так:
spoiler# Генерирую ключ
openssl genrsa -des3 -out ca.key 4096
# На основе ключа создаю сертификат для CA
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
# Генерирую ключ
openssl genrsa -out server.key 4096
# На основе предыдущего ключа создаю файл запроса (csr)
openssl req -new -key server.key -config openssl-csr.cnf -reqexts req_ext -out server.csr
# Создаю сертификат сервера (подписываю .csr своим ca.crt)
openssl x509 -req -days 365 -CA ca.crt -CAkey ca.key -set_serial 01 -extfile openssl-csr.cnf -extensions req_ext -in server.csr -out server.crt
Файл default.vrd для базы провайдера:
spoiler<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/openidprov"
ib="Srvr=srv1c;Ref=OpenIDProv;">
<standardOdata enable="false"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<b><openid>
<provider>
<lifetime>86400</lifetime>
</provider>
</openid></b>
</point>
Файл default.vrd для базы клиента OpenID:
spoiler<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/test-openid-client"
ib="Srvr=srv1c;Ref=test-openid-client;">
<standardOdata enable="false"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
<openid>
<rely url="https://srv1c-cl-testssl2-web/openidprov/e1cib/oid2op" />
</openid>
</point>
В базе провайдерской, завел пользователей с паролями. (Пустая новая база 1С, не нашел что нужна какая-то специальная конфигурация, но вдруг.)
В базе клиентской, завел одноименных пользователей. Отключил аутентификацию 1С, включил OpenID.
При запуске клиентской базы тонким клиентом, меня перекидывает в базу OpenID. Если ввожу не верный пароль, сообщается об этом. Если ввожу верный пароль, получаю ошибку: "Ошибка подключения к OpenID провайдеру
https://srv1c-cl-testssl2-web/openidprov/e1cib/oid2op".
В технологическом журнале при этом такая ошибка: "Ошибка работы с Интернет: Удаленный узел не прошел проверку".
Сервер 1С и Web сервер, это Linux (CentOS 7). На клиентских машинах Windows, сертификат ca.crt добавлен в хранилище доверенных корневых сертификатов. В браузере базы, и клиентская и провайдерская открываются быз ошибок по https.
Если перейти по адресу
https://srv1c-cl-testssl2-web/openidprov/e1cib/oid2op скачивается файлик:
spoiler<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
<XRD>
<Service priority='0'>
<Type>http://specs.openid.net/auth/2.0/server</Type>
<URI>https://srv1c-cl-testssl2-web/openidprov/e1cib/oid2op</URI>
</Service>
</XRD>
</xrds:XRDS>
Также, если захожу веб браузером в базу клиентску, то меня не перекидывает на провайдерскую, в отличии от тонкого клиента.
Подозреваю что проблема в неправельно сгенерированном сертификате, или неправельной установке его на веб сервере (я про сертификат ca.crt), но на ИТС написано что клиентские сертификаты 1с ищет в хранилище сертификатов, а в CentOS нет единого хранилища.
Кстати, если открывать каким-нибудь консольным браузером с веб сервера его страничку:
https://srv1c-cl-testssl2-web/openidprov/e1cib/oid2op то, также открывается тот файлик, который скачивается на десктопных машинах, на сертификат не ругается.