Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Доступ к 1С через Web (IIS) с iPad

Автор: Ykidia
Дата сообщения: 22.05.2016 17:04
Здравствуйте!

Есть сервер с IIS (будем называть IIS) и опубликованным web-доступом к 1С. Есть еще один сервер (все сервера в домене, Windows 2012 R2), где поднят центр сертификации (будем называть CA). И есть доступ из Интернет через OpenVPN-шлюз.
IIS имеет сертификат на основе шаблона WebServer, выданного и подписанного CA и с именем "*.domain.ru". Также выдан один пользовательский сертификат "mobile-user", причем я заморочился с архивацией и восстановлением закрытых ключей, так что если корневой сертификат и сертификат веб-сервера в обычном формате, то пользовательский - с закрытым ключом и в формате pfx с паролем.
Итак, когда я захожу обычным компом или iPad-ом "с улицы" на https://x.domain.ru, то получаю 2 отворота - первый, что сертификат сервера гнилой и что сервер требует сертификат клиента (в IIS настроил именно требовать SSL во всех случаях). Когда устанавливаю корневой сертификат на комп или iPad - получаю лишь один отворот - сервер требует сертификат клиента, зато https-соединение уже защищено. Ладно, устанавливаю сертификат клиента на компе - и чудо! - комп идет дальше (предлагая выбрать единственный сертификат клиента) и попадает в 1С, далее выбираем пользователя 1С и работаем.
Но с iPad-ом не так. Добавляю в него сертификат клиента, и вроде соединение идет дальше (также предлагает выбрать единственный сертификат клиента), как вдруг все обламывается, и я получаю ошибку http 403.7, причем как "запрошенный URL-адрес", так и "физический путь" указывают уже на обработчик 1С (который кстати 64-битный), примерно так:
Модуль IIS Web Core
Уведомление BeginRequest
Обработчик 1C Web-service Extension
Код ошибки 0x80070005
Запрошенный URL-адрес https://x.domain.ru:443/название_базы/ru/mainform.html?sysver=8.3.6.2449
Физический путь C:\inetpub\wwwroot\название_базы\ru\mainform.html

Я уже все 3 сертификата добавил в файл cacert.pem - толку 0.
Уже и что только не делал... Даже полез на ssllabs.com и прочие подобные, выполнил почти все рекомендации. Конечно же, не помогло
Может кто знает, что делать в таком случае? Что я упустил?

Спасибо.

Добавлено:
Забыл сказать. Компы - Windows 7 или 8.1 (которыми удачно заходил в базу через web). iPad-ы - как старый с Safari 6, так и новый с Safari 9...
Автор: reenoip
Дата сообщения: 23.05.2016 09:31

Цитата:
iPad-ы - как старый с Safari 6, так и новый с Safari 9


Ykidia, а если Chrome или Firefox?
Автор: Ykidia
Дата сообщения: 23.05.2016 13:12
reenoip
Если брать Chrome/Firefox/Opera на тех же iPad-ах, так они вообще даже корневым сертификатом не пользуются - говорят парашный сертификат сервера.
Автор: reenoip
Дата сообщения: 23.05.2016 17:12
https://blog.httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/ - читал? Или всё уже прошёл?
Автор: Ykidia
Дата сообщения: 23.05.2016 19:35
Спасибо за ответ. Этого я не читал, однако уже сделал все как надо - через CA (не через самоподписанный сертификат в IIS), установил корневой сертификат своего центра сертификации в профили iPad. Но это лишь полдела - такой сертификат лишь идентифицирует/авторизовывает сервер для клиента.
А мне нужно еще, чтобы была обязательная идентификация/авторизация клиента для сервера. Т.е. чтобы никто чужой не мог зайти на страницу просто игнорируя сертификат сервера.
И вот я создаю сертификат уже для клиента (тем же самым центром сертификатом, который у меня установлен на Windows Server 2012 R2) по шаблону "Пользователь". Запихиваю выданный сертификат на доменного пользователя "mobile-user" (сертификат "Пользователь мобильного устройства") в хранилище "Личные" на любом компе - и этот комп попадает куда надо, обработчик 1С не выпендривается, показывает окно с выбором пользователя 1С, я выбираю пользователя, ввожу пароль, жду, пока все загрузится и уже могу полноценно работать с 1С.
А iPad (Safari) предлагает выбрать один-единственный сертификат "Пользователь мобильного устройства", но все равно я получаю вышеуказанную ошибку...
Что делать? Естественно, после каждого изменения я на всякий случай перезагружаю сервер (где IIS), а также жестко выкидываю Safari из памяти iPad, стираю все данные Safari через настройки и потом заново его запускаю. Но не помогают все эти пляски и танцы. И сертификаты я уже многократно удалял и ставил заново.
Возможно есть какой-то нюанс работы iPad с обработчиком 1С в IIS. Может, можно какие-то расширенные логи посмотреть? Либо не надо было все 3 сертификата запихивать в cacert.pem (я запихнул туда корневой, веб-сервера и пользователя)?
Автор: Ykidia
Дата сообщения: 03.06.2016 23:47
Так. Проблема все еще не решена. Однако по ходу экспериментов выяснилась одна тонкость. Продукция Apple не переваривает SHA512. Так что если при установке своего ЦС вы вдруг решили перестраховаться, сделать себе большой и толстый... ключ для корневого сертификата, то птица обломинго прилетит к вам еще до того, как вы попытаетесь разобраться с 1С. Длина ключа - пофиг, можете делать 4096 (как я), это вроде работает. Но SHA512 - нет, только SHA256 и ниже...
Всего было примерно 3 переустановки с "чистого листа". Первая - ключ 4096 бит с хэшем SHA256, результат описан выше. Вторая - я плюнул на все, удалил ЦС, удалил все его сертификаты с других машин (где IIS и PDC), установил ЦС заново, сделал так, как рекомендуется и даже хуже: ключ 2048 бит, хэш SHA1. Естественно, это не помогло, только ssllabs и прочие обеспокоенно закудахтали. Третья - удалил ЦС, сертификаты, попытался вырезать IIS "под корень", в итоге пришлось переустанавливать весь сервер, поставил ЦС, сделал 4096/SHA512. После этого для всех клиентов от Apple путь на IIS был "заказан", что я только ни делал. SSL handshake fail и все такое, в инете есть похожие проблемы, но нигде не указано в явном виде про SHA512, вернее, есть сообщения, датированные в основном 2010-2012 годами, а то и раньше. Но времени-то прошло - огого! - а Apple все "кукует". Из-за этих педиков приходится теперь всех клиентов стричь под одну гребенку: я вернулся к тому, откуда пришел - 4096/SHA256. Воз и ныне там...
Ну да, еще конечно же немного оказывала влияние перетасовка порядка, включение/выключение алгоритмов шифрования (при помощи IISCrypto). Тут тоже надо быть настороже, первым делом сохранить порядок и набор по умолчанию куда-нибудь. Иначе может понадобиться начинать все с начала вплоть до переустановки сервера...
Вот некоторые ссылки на материалы, которые помогли мне понять, что происходит, а также немного автоматизировать процесс экспериментов , но пока не помогли заставить все работать:
https://serverfault.com/questions/724077/how-to-configure-iis-7-5-ssl-tls-to-work-with-ios-9-ats/768238
http://tavalik.ru/nastrojka-veb-dostupa-k-bd-1spredpriyatie-na-iis/
http://infostart.ru/public/275820/
http://statusspb.com/web_1c_iis
http://sys-admin.kz/systadm/325-iis-reset-factory-settings.html
http://www.forum.mista.ru/topic.php?id=634707
Попробую Apache вместо IIS и отпишусь о результатах.

Страницы: 1

Предыдущая тема: Не могу зайти в роутер из-под win 10


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.