Добрый день.
Не первая тема по ДМДК. Ну, во-первых, все ссылаются на "инструкцию", как будто написана тут на форуме, выглядит странно.
Цитата:E_NO_CREDENTIALS: 0x8009030e
Цитата:Как сделать, чтобы stunnel стабильно работал автоматически, без танцев и костылей?
Полагаю, проблема в отсутствии прав пользователя, под которым запускается служба, на контейнер или в отсутствии сертификата в хранилище компьютера. Вкратце,
если служба запускается под локальной системой, то хранить контейнер в реестре не выйдет. Как самый простой вариант, можно изменить пользователя, под которым запускается служба, на текущего (из-под которого работает запуск двойным кликом). Однако использование текущего пользователя для служб не рекомендовано из-за риска повредить реестр при внезапной остановке службы. Еще может быть не установлен
криптопровайдер уровня ядра, он нужен для доступа к ключам гост из служб. Попробуйте "изменить" установку Криптопро CSP и проверить, что этот компонент установлен.
Рекомендовано такое: скопировать контейнер вместо Реестра
на другой считыватель (флешка/токен/несистемный раздел диска/Директория); установить сертификат
в хранилище компьютера со ссылкой на контейнер компьютера (это можно сделать, перезапустив панель управления КриптоПро в режиме администратора и выбрав переключатель "компьютера"). Далее
дать права на него через остнастку сертификаты (локальный компьютер - хранилище Личное - правой кнопкой мыши по нужному сертификату - все задачи - управление закрытыми ключами - дать нужному пользователю (системе, например) полные права). После этого служба сможет найти ключ и использовать его.
Двойным же кликом Вы запускаете от текущего пользователя для которого сертификат и контейнер установлены и доступны - значок зеленый. Если на компьютере не требуется работа тоннеля когда никто не залогинен, то можно убрать службу, а ярлык на stunnel_msspi.exe закинуть в автозагрузку.
По поводу "не всегда запускается" дело возможно в том, что служба и приложение используют один конфиг и слушают один порт (ну 1С же настроен на конкретный порт). С этим есть ограничение сокетов в Windows - 2 процесса не смогут слушать один и тот же адрес:порт, один из них завершается с ошибкой, что порт уже занят. Следовательно, хороший шанс что порт займет служба (не имеющая доступа к ключу), а завершится приложение (если stunnel_msspi вообще автозапускается) (который имеет доступ к ключу) и ничего работать не будет. Нужно из разнести на разные порты или оставить что-то одно.
Отредактировано пользователем 10 марта 2022 г. 1:54:58(UTC)
| Причина: Не указана