1С 8.2 Тонкий клиент - шифруемся с помощью SSL-сертификата

сертификат

С появлением версии 1С 8.2 появилась возможность использовать для подключения тонкий и веб-клиенты. Как сделать такое подключение безопасным? Рассмотрим в следующей статье.

Итак, имеем развернутую 1С 8.2, приложение опубликовано на веб-сервере (IIS или Apache) согласно руководству администратора. При подключении на 80-й порт (http) приложение нормально запускается в режиме и тонкого и веб-клиента. Для защиты соединения устанавливаем на веб-сервер SSL-сертификат.и пробуем подключаться на 443 (https), в случае примения веб-клиента соединение успешно устанавливается и работает, а для тонкого клиента  видим следующее сообщение об ошибке:

Peer certificate cannot be authenticated with known CA certificates

или такое:

Problem with the SSL CA cert (path? access rights?)

Данная проблема возникает, когда администратор применяет на веб-сервере самоподписанный сертификат. Для исправления данной ситуации необходимо добавить информацию о сертификате в файл cacert.pem что находится в каталоге bin соотв. версии 1С Предприятия. Для добавления нам понадобится,собственно, сам сертификат, экспортированный в формат pem и его цифровой отпечаток MD5.

Наиболее просто экспортировать сертификат следующим образом:

Не забываем при экспорте выбрать формат base-64.

А далее воспользуемся бесплатным пакетом Open SSL для получения отпечатка.

C:\OpenSSL-Win32\bin>openssl dgst -md5 cert.pem.cer
получаем:
MD5(cert.pem.cer)= 02097fe62fa514af6defe2668751ea18

Полученную информацию добавим в файл cacert.pem как показано на примере ниже.

MyServer CA
=========

MD5 Fingerprint=02:09:7f:e6:2f:a5:14:af:6d:ef:e2:66:87:51:ea:18

-----BEGIN CERTIFICATE-----
MIIEADCCAuigAwIBAgIKE16daAAAAAAADTANBgkqhkiG9w0BAQUFADARMQ8wDQYD
VQQDEwZ3YXJwaWcwHhcNMTMxMjAxMTIwOTA2WhcNMTQxMjAxMTIxOTA2WjBeMQsw
CQYDVQQGEwJVQTELMAkGA1UECBMCY2gxCzAJBgNVBAcTAmNoMQwwCgYDVQQKEwN2
aWQxCzAJBgNVBAsTAml0MRowGAYDVQQDExFkZW1vLnZpZGljb20uaW5mbzCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1Ml3KndKeL/XmhUIvFal+i8Nb3wNTg8+
rcs/Hf/pULxFq3heTjBfMRaAT6SsRRB6dnwjfBvVIemesBM6JxHiBtwY5asD/UFq
96yK5h5Ks3xuYmRNOGrXAXhLcQ8JHrFfej0zFc2/kbS/QmMG1nBagLekMNs2Hs/v
2ORxfipf0RUCAwEAAaOCAY8wggGLMA4GA1UdDwEB/wQEAwIE8DBEBgkqhkiG9w0B
CQ8ENzA1MA4GCCqGSIb3DQMCAgIAgDAOBggqhkiG9w0DBAICAIAwBwYFKw4DAgcw
CgYIKoZIhvcNAwcwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFCDDQ5aR
LOTMYBsXo7j7fA8qcZbnMB8GA1UdIwQYMBaAFBIGOw+cf94y7TNNDqqOPwEzwU/b
MFsGA1UdHwRUMFIwUKBOoEyGI2h0dHA6Ly93YXJwaWcvQ2VydEVucm9sbC93YXJw
aWcuY3JshiVmaWxlOi8vXFx3YXJwaWdcQ2VydEVucm9sbFx3YXJwaWcuY3JsMIGA
BggrBgEFBQcBAQR0MHIwNgYIKwYBBQUHMAKGKmh0dHA6Ly93YXJwaWcvQ2VydEVu
cm9sbC93YXJwaWdfd2FycGlnLmNydDA4BggrBgEFBQcwAoYsZmlsZTovL1xcd2Fy
cGlnXENlcnRFbnJvbGxcd2FycGlnX3dhcnBpZy5jcnQwDQYJKoZIhvcNAQEFBQAD
ggEBACW2J6ZB+3ffOI9Q/8HwwVXQ+Pj6bjtEIUeuulYSSRR7D3fIQxCgqYQbX9wR
5kHJn/1HQEDjcahKE2y9kunbWeFYJHHh/0DpS2DvCSud4Cj4uPclWijW1+Z4rP0g
WpUmq437IteqzkeAesj7eDcku3JsCaxAfOSVhbMWwcD8Rmo4mszCvQOMO2xtsI7J
qMW6YdeG2ZzgTzpqvSTlIf7MePA=

-----END CERTIFICATE-----

Сохраняем, запускаем тонкий клиент, пользуемся защищенным соединением.


Если не смотря ни на что, возникает ошибка:

Peer certificate cannot be authenticated with known CA certificates

Это значит, что клиент не может проверить ваш сертификат ни на одном известном ему корневом центре сертификации. Чаще всего такая ошибка возникает, когда используются самоподписанные сертифкаты.

Приведем алгоритм установки сертификата на веб-сервер на примере Windows 2003 (IIS 6).

  1. Установим сервер сертификатов (компонент Windows 2003), может быть развернут на другом сервере или виртуальной машине.
  2. На сервере с IIS сформируем запрос на получение сертификата, сохраним запрос в файл.(Обязательно проверяем полное имя домена, должно совпадать с нашим доменом).
  3. Зайдем через броузер в службу сертификации (обычно http://servername/certsrv). Выберем Расширенный запрос и скопируем текст из файла запроса (см.п.2.)
  4. Выдадим сертификат через оснастку Центр сертификации в разделе Администрирование сервера сертификатов.
  5. Возаращаемся на сервер сертификации http://servername/certsrv, Просмотр выданных и Загрузить цепочку сертификатов.
  6. В полученном файле с расширением p7b будет сертификат нашего IIS сервера и сертификат корневого центра сертификации. Открывается файл через оснастку Управление сертификатами.Экспортируем оба файла в Base-64 кодировку.
  7. Сертификат корневого центра сертификации устанавливаем в локальное хранилище, раздел Доверенные корневые центры сертификации.
  8. Сертификат веб-сервера устанавливаем на IIS через обработку запроса сертификата.
  9. На клиентском пк, который будет подключаться через тонкий клиент через https: дописываем в файл cacert.pem  раздел с сертификатом корневого центра сертификации. Как это сделать и получить MD5 отпечаток описано выше.

Далее просто копируем наш cacert.pem на пк клиентов. Не забываем, что этот файл в каждом каталоге релиза  свой. Рекомендую в настройках подключения к БД указать полную версию 1С 8. Несколько иллюстраций ниже.

 

Tags: