Возникла такая проблема:
Windows server 2019
На сервере установлен КриптоПро CSP 5.0.12600 серверная лицензия.
Установлен контейнер с подписью на флешке. Сертификат установлен в систему. Все это сделано из-под пользователя, под которым работает сервер 1С 8.3.2239 x64, базы УТ 10.3.79.1, БП 3.0.143.32 в которых настроен 1С:ЭДО на два предприятия.
Несколько дней назад один из сертификатов закончился, выдали новый на Rutoken Lite с запретом экспорта, который я благополучно скопировал на флешку утилитой проверки рутокенов 3.4.2. При этом на сервере на последний месяц никаких изменений ни с сертификатами, ни с политиками доступа не происходило. Никакой новый софт не устанавливался.
Сертификат установился нормально, тестирование в КриптоПро проходит успешно, а вот в 1С начались траблы, ошибка в УТ 10.3 при проверке сертификата:
Код ошибки 113. Не удалось выполнить операции шифрования/расшифровки на сервере.
Ошибка при получении свойства сертификата (0x00000000).
Ошибка в БП 3.0 типовой при проверке сертификата:
Ошибка при получении свойства сертификата (0x00000000).
Обычно это означает, что указан неправильный пароль доступа к закрытому ключу, но никакого пароля на ключе нет. Я пробовал стандартные пароли, это ничего не изменило.
На сайте 1c-edo.ru есть описание причин ошибки и варианты исправления, но они не сработали.
* Удаление контейнера и сертификата и повторная их установка результата не дали
* Рестарт сервера с очисткой кэша сервера/пользователя результата не дал
* Обновление платформы на версию 8.3.22.2283, результата не дал, равно как и * на 8.3.21.1895
* Проверка и полное переформатирование флешки в FAT32 ничего не изменили
* Полная переустановка КриптоПро (дважды вычистил утилитой полного удаления с перезагрузкой.
Звонил в техподдержку 1С ЭДО, подключался их специалист, порекомендовал полностью переустановить КриптоПро, это не помогло.
Если запустить базу на сервере (логин под пользователем из под которого запущен сервер 1С) и в настройках криптографии установить проверку сертификатов и криптографии на клиенте - результат не меняется.
Со вторым сертификатом проблем никаких нет, всё работает.
Может кто то сталкивался с таким? Или есть идеи что ещё можно попробовать предпринять? (кроме перевыпуска сертификата, ибо с ним всё ок, похоже)
После двух суток мучений нашёл решение самостоятельно. С помощью утилиты "Инструменты КриптоПро" очень внимательно и аккуратно вычистил все недействительные, неактуальные, просроченные контейнеры и сертификаты. Обязательно нажать кнопку "Показать расширенные", чтобы было всё видно! Вся основная работа проводится в пунктах "Контейнеры" и "Сертификаты", ставил и снимал чекбоксы "Использовать локальное хранилище компьютера", удалил все просроченные сертификаты и контейнеры, после этого в этой же утилите установил ещё раз проблемный сертификат (меню "Сертификаты" - Установить сертификаты) в Личные и в Другие пользователи. После этого 1С смогла подцепить сертификат.
Как говорится, "Чистота - залог здоровья. Порядок прежде всего!"
Надеюсь, мой опыт сэкономят кому-то много времени.
Со вторым сертификатом проблем никаких нет, всё работает.
Тогда лично я бы для начала перепривязал проблемный сертификат к "оригиналу" ЭЦП на Рутокене и проверил, будут ли с ним проблемы?
Потом установил бы сертификат для "обычного" пользователя (не службы сервера 1С) и в интерактивном режиме протестировал бы копию контейнера средствами КриптоПро, без 1С: мало ли что и как там скопировалось - может, ФНС что-то придумала для борьбы с копировщиками?
(3) Не работает служба Рутокена на сервере, ругается: ей не нравится поднятый RDP. П.2 пробовал тоже, не взлетело. Решение нашёл самостоятельно, ниже комментарий будет
После двух суток мучений нашёл решение самостоятельно. С помощью утилиты "Инструменты КриптоПро" очень внимательно и аккуратно вычистил все недействительные, неактуальные, просроченные контейнеры и сертификаты. Обязательно нажать кнопку "Показать расширенные", чтобы было всё видно! Вся основная работа проводится в пунктах "Контейнеры" и "Сертификаты", ставил и снимал чекбоксы "Использовать локальное хранилище компьютера", удалил все просроченные сертификаты и контейнеры, после этого в этой же утилите установил ещё раз проблемный сертификат (меню "Сертификаты" - Установить сертификаты) в Личные и в Другие пользователи. После этого 1С смогла подцепить сертификат.
Как говорится, "Чистота - залог здоровья. Порядок прежде всего!"
Надеюсь, мой опыт сэкономят кому-то много времени.
После двух суток мучений нашёл решение самостоятельно.
Гм! Между созданием темы и сообщением о найденном решении прошло чуть более часа. Куда девались остальные 47 часов? ;-)
P.S. Я вообще не использую флешки для рабочих копий ЭЦП - устанавливаю их в реестр. Да, это посложнее, приходится повозиться с утилитой BIN2HEX и текстовым редактором, но считаю, что оно того стоит - надежнее, да и несанкционированно скопировать ключ реестра мал-мал посложнее, чем папку с флешки.
(6) Форум на Инфостарте это последняя надежда была ) посту предшествовали два бессонных дня, обсуждение проблемы со всеми знакомыми коллегами, звонок в техподдержку 1С ЭДО, и вот это всё. Клиенты без ЭДО нынче жить не могут.
А если ключ неэкспортируемый, тогда как в реестр его засунуть? Я знаю, что есть хитрая утилита, которой можно сделать ключ экспортируемым, но я её не нашёл на просторах интернета.
если ключ неэкспортируемый, тогда как в реестр его засунуть?
Несложно, но придется повозиться: средствами КриптоПро штатно записываем в реестр любую ЭЦП - можно просроченную, неважно, но под нужным именем! После этого редактором реестра экспортируем ветку с этим контейнером в REG-файл. Открываем его в текстовом редакторе и смотрим на структуру - там все несложно.
После этого упоминавшейся утилитой BIN2HEX конвертируем бинарные файлы контейнера в HEX-файлы, текстовым редактором подгоняем их в формат REG (можно для этого написать приблуду на той же 1С, но мне лениво - не так часто приходится заниматься), копируем полученные тексты в соответствующие места REG, импортируем его в реестр - вуаля!
есть хитрая утилита, которой можно сделать ключ экспортируемым, но я её не нашёл на просторах интернета.
Вот тут посмотрите и, главное, прочитайте предупреждение.
Только я этим способом предпочитаю не пользоваться: как-никак, а это модификация ЭЦП - лишний риск разборок с ФНС.
Да и стырить ее из реестра становится делом нехитрым, а при моем способе ЭЦП остается неэкспортируемой - лично мне так малость поспокойнее.