код ошибки 113 не удалось выполнить операции шифрования расшифровки на сервере
Код ошибки 103. Не удалось выполнить операции шифрования/расшифровки на компьютере. Требуемый персональный сертификат не найден
Для устранения ошибки необходимо установить сертификат электронной подписи, который Вы используете для ЭДО, в хранилище «Личные» операционной системы.
Установка производится из криптопровайдера.
Перейти на вкладку «Сервис» и нажать «Просмотреть сертификаты в контейнере…».
Далее необходимо выбрать соответствующий контейнер закрытой части ключа и нажать «Ок».
В открывшемся окне «Сертификаты в контейнере закрытого ключа» нажать «Установить».
Двойным нажатием левой кнопкой мыши открыть соответствующий контейнер закрытой части ключа.
В открывшемся окне «Свойства контейнера» необходимо нажать «Открыть».
В сертификате необходимо нажать «Установить сертификат…» и завершить процесс установки в мастере.
Ошибка при формировании данных подписи (0x00000056)
При возникновении ошибки «Ошибка при формировании данных подписи (0x00000056)» необходимо выполнить проверку сертификата электронной подписи.
Алгоритм проверки электронной подписи:
В программном продукте 1С необходимо
1. перейти в раздел «Администрирование»
2. «Обмен электронными документами»
3. «Настройка электронной подписи и шифрования»
4. На вкладке «Сертификаты» открыть используемый сертификат
5. Нажать на кнопку «Проверить»
6. Ввести пароль закрытой части ключа и нажать «Проверить»
Если в ходе проверки напротив пункта «Подписание данных» возникнет сигнализирующий об ошибке красный символ, на него необходимо нажать для просмотра технической информации об ошибке.
Если в технической информации об ошибке указано «Ошибка при формировании данных подписи (0x00000056)» это означает, что введён неправильный пароль доступа к сертификату электронной цифровой подписи.
Проверить языковую раскладку при использовании буквенного пароля.
Проверить не включена ли на клавиатуре функция фиксации прописных букв (Caps Lock) при использовании буквенного пароля.
При копировании пароля из текстового редактора проверить, не попадают ли лишние символы в зону копирования (пробел в начале или конце)
Уточнить у ответственных лиц Вашей организации информацию о возможной смене пароля.
Запустить КриптоПро, затем перейти в раздел «Сервис» и нажать кнопку «Изменить пароль». Выбрать соответствующий контейнер и ввести новый пароль и подтверждение.
! Обращаем Ваше внимание, что при копировании контейнера из криптопровайдера, последний просит ввести новый пароль для копии закрытой части ключа, которая в последующем могла быть установлена на Вашем рабочем месте.
! Также сообщаем, что ни техническая поддержка 1С-ЭДО, ни Удостоверяющий центр, который выдал сертификат, не располагают информацией о паролях пользователей. Данная информация является строго конфиденциальной и не подлежит разглашению. Если рекомендации Вам не помогли и пароль утрачен безвозвратно, то единственным выходом из данной ситуации будет выпуск нового сертификата.
Ошибка при вызове pkcs7расшифровать менеджера криптографии
Ошибка интерфейса модуля криптографии. Модуль криптографии не может выполнить требуемое действие, т. к. контекст был получен в ограниченном режиме.
Номер карточки: SD0011817
При возникновении ошибки «Ошибка интерфейса модуля криптографии. Модуль криптографии не может выполнить требуемое действие, т. к. контекст был получен в ограниченном режиме.» необходимо выполнить проверку электронной подписи.
Алгоритм проверки электронной подписи:
В программном продукте 1С необходимо
1. перейти в раздел «Администрирование»
2. «Обмен электронными документами»
3. «Настройка электронной подписи и шифрования»
4. На вкладке «Сертификаты» открыть используемый сертификат
5. Нажать на кнопку «Проверить»
6. Ввести пароль закрытой части ключа (при его наличии) и нажать «Проверить»
Если в ходе проверки напротив пункта «Подписание данных» возникнет сигнализирующий об ошибке красный символ, на него необходимо нажать для открытия технической информации об ошибке.
Если в технической информации об ошибке указано » «Ошибка интерфейса модуля криптографии. Модуль криптографии не может выполнить требуемое действие, т. к. контекст был получен в ограниченном режиме.» необходимо выполнить проверку электронной подписи.» это обозначает, что проверка сертификата осуществляется без ввода пароля, хотя на контейнере закрытой части ключа установлен пароль.
Рекомендации:
Уточнить у ответственных лиц организации пароль на электронную подпись.
! Обращаем Ваше внимание, что при копировании контейнера из криптопровайдера, последний просит ввести новый пароль для копии закрытой части ключа, которая в последующем могла быть установлена на Вашем рабочем месте.
! Также сообщаем, что ни техническая поддержка 1С-ЭДО, ни Удостоверяющий центр, который выдал сертификат, не располагают информацией о паролях пользователей. Данная информация является строго конфиденциальной и не подлежит разглашению. Если рекомендации Вам не помогли и пароль утрачен безвозвратно, то единственным выходом из данной ситуации будет выпуск нового сертификата.
АйТиБложик
Маленький IT блог с характером 1С.
Страницы
Поиск по блогу
пятница, 24 апреля 2015 г.
Шифрование строковых данных. Менеджер криптографии.
Шифрование — обратимое преобразование некой информации с целью сокрытия от неавторизованных лиц и, в это же время, предоставление, авторизованным пользователям доступа к ней. Главная задача шифрования — это соблюдение конфиденциальности передаваемой информации.
Объект МенеджерКриптографии платформы 1С позволяет шифровать данные, используя симметричное шифрование, так как криптопровайдеры ОС Windows используют данный вид шифрования (RC2, RC4).
Создание временного сертификата
Так же желательно создавать сертификат с параметром -sp, который позволит задать имя криптопровайдера для сертификата, например, «Microsoft Strong Cryptographic Provider», так как для инициализации объекта МенеджерКриптографии требуется в конструкторе указывать имя криптопровайдера (имя модуля провайдера).
Внимание: пароль на контейнер закрытого ключа при создании сертификата в данном случае не устанавливается!
Реализация шифрования
Функция шифрования строковых данных:
// Функция выполняет шифрование строковых данных.
//
// Параметры
// СтроковыеДанные — Строка — данные для шифрования;
// Отпечаток — Строка — отпечаток сертификата закодированный в Base64;
// ИмяКП — Строка — имя модкля криптографии;
// ТипКП — Строка — Тип модуля криптографии.
//
// Возвращаемое значение:
// Строка — зашифрованный данные формата PKCS#7 закодированные в Base64.
//
&НаКлиенте
Функция ЗашифроватьСтроку(СтроковыеДанные, Отпечаток, ИмяКП, ТипКП)
ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
ЗаписьТекста = Новый ЗаписьТекста(ИмяВременногоФайла, «CESU-8»);
ЗаписьТекста. Записать(СтроковыеДанные);
ЗаписьТекста. Закрыть();
МенеджерКриптографии = Новый МенеджерКриптографии(ИмяКП, «», ТипКП);
ХранилищеСертификатов = МенеджерКриптографии. ПолучитьХранилищеСертификатов(
ТипХранилищаСертификатовКриптографии. ПерсональныеСертификаты,
РасположениеХранилищаСертификатовКриптографии. ДанныеПользователяОС);
Сертификат = ХранилищеСертификатов. НайтиПоОтпечатку(Base64Значение(Отпечаток));
ЗашифрованныеДанные = МенеджерКриптографии. Зашифровать(ИмяВременногоФайла, Сертификат);
В данной функции строковые данные записываются в файл в кодировке CESU-8, т. е. UTF-8 без BOM. Инициализируется менеджер криптографии и по отпечатку происходит поиск сертификата в хранилище сертификатов текущего пользователя в ветке Личное.
Далее происходит шифрование строковых данных, используя найденный сертификат, тем самым, расшифрование сможет произвести тот пользователь, который имеет доступ к закрытому ключу этого сертификата. Результатом шифрования являются двоичные данные, которые кодируются в строку Base64. Двоичные данные имеют формат PKCS#7.
Функция расшифрования строковых данных:
// Функция выполняет расшифровку строковых данных.
//
// Параметры
// ЗашифрованныеДанные — Строка — зашифрованный данные формата PKCS#7 закодированные в Base64;
// Отпечаток — Строка — отпечаток сертификата закодированный в Base64;
// ПарольЗакрытогоКлюча — Строка — пароль к контейнеру закрытого ключа;
// ИмяКП — Строка — имя модкля криптографии;
// ТипКП — Строка — Тип модуля криптографии.
//
// Возвращаемое значение:
// Строка — расшифрованные строковые данные.
//
&НаКлиенте
Функция РасшифроватьСтроку(ЗашифрованныеДанные, Отпечаток, ПарольЗакрытогоКлюча, ИмяКП, ТипКП)
МенеджерКриптографии = Новый МенеджерКриптографии(ИмяКП, «», ТипКП);
МенеджерКриптографии. ПарольДоступаКЗакрытомуКлючу = ПарольЗакрытогоКлюча;
ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
РасшифрованныеДанные. Записать(ИмяВременногоФайла);
ЧтениеТекста = Новый ЧтениеТекста(ИмяВременногоФайла, «CESU-8»);
СтрокаДанных = ЧтениеТекста. Прочитать();
ЧтениеТекста. Закрыть();
В данной функции инициализируется менеджер криптографии и указывается пароль к контейнеру закрытого ключа. Далее происходит расшифровка зашифрованных данных. Результатом расшифрования являются двоичные данные, которые записываются в файл с кодировкой CESU-8 и считываются из него.
Скачать обработку шифрования/расшифрования строковых данных можно по этой ссылке.
Пример работы обработки:
На рисунке 4 поле «Пароль» пустое, так как при создании временного сертификата мы не указывали пароль на контейнер закрытого ключа.
МенеджерКриптографии: ошибка при подписи «ошибка интерфейса модуля криптографии: отсутствует набор ключей»
при попытке использования метода Подписать() менеджера криптографии выскакивает ошибка «ошибка интерфейса модуля криптографии: отсутствует набор ключей»
из других программ с помощью этой же ЭЦП подписывает нормально. ключик настроен через КриптоПро.
релиз 1С 8.2.15.319
Сертификат не имеет связи с закрытым ключом
При возникновении ошибки «Сертификат не имеет связи с закрытым ключом» необходимо выполнить проверку сертификата электронной подписи.
Алгоритм проверки электронной подписи:
В программном продукте 1С необходимо
1. перейти в раздел «Администрирование»
2. «Обмен электронными документами»
3. «Настройка электронной подписи и шифрования»
4. На вкладке «Сертификаты» открыть используемый сертификат
5. Нажать на кнопку «Проверить»
6. Ввести пароль закрытой части ключа и нажать «Проверить»
Если в ходе проверки напротив пункта «Подписание данных» возникнет сигнализирующий об ошибке красный символ, на него необходимо нажать для открытия технической информации об ошибке.
Если в технической информации об ошибке указано » Сертификат не имеет связи с закрытым ключом » это обозначает, что открытая часть ключа не может сослаться на контейнер сертификата. Основной причиной возникновения данной ошибки является некорректный перенос сертификата с одного рабочего места на другое.
Решение: связать сертификат с закрытом ключом.
Д ля этого необходимо:
1. Сохранить сертификат, указав директорию компьютера, где его можно будет найти. Сделать это можно из программы 1С открыв сертификат в настройках электронной подписи и шифрования и нажать кнопку «Сохранить в файл» и указать директорию операционной системы для сохранения файла.
2. Запустить криптопровайдер и выполнить установку сертификата.
В окне VIPNet CSP нажать «Установить сертификат»
В открывшемся окне необходимо выбрать директорию, куда был сохранен сертификат, выбрать сохраненный ранее сертификат и нажать «Открыть».
В открывшемся мастере установки сертификатов, нажать «Далее»
При выборе хранилища необходимо выбрать «Текущий пользователь» и нажать «Далее»
В следующем окне необходимо выбрать «Найти контейнер с закрытым ключом» и нажать «Далее».
Контейнер с закрытым ключом оперделиться автоматический. В том случае, когда контейнер не определился необходимо нажать «Обзор» и выбрать контейнер вручную, а затем нажать «Ок» и завершить установку.
В открывшемся окне криптопровайдера перейти на вкладку «Сервис» и нажать «Установить личный сертификат».
В следующем окне необходимо выбрать директорию расположения файла сертификата нажав кнопку «Обзор»
Указать директорию, в которую ранее был сохранён сертификат и нажать «Открыть».
В следующем окне мастера установки сертификатов поставить галочку «Найти контейнер автоматический». Контейнер должен определиться в окне ниже. Если автоматический не удалось найти контейнер необходимо нажать «Обзор» и самостоятельно указать контейнер. Затем нажать Далее.
Затем необходимо поставить галочку «Установить сертификат (цепочку сертификатов) в контейнер», нажать «Далее» и завершить установку.
После установки связи между сертификатом и закрытой частью ключа ошибка не воспроизводится.
Ошибка при получении свойства сертификата (0x00000000)
Чтобы определить под каким пользователем ОС (на каком компьютере), необходимо наличие связи закрытого ключа с открытой частью сертификата, требуется узнать режим запуска 1С:
Если файловая база запускается через браузер на том же компьютере, значит используется web-сервер, и наличие связи надо проверять для пользователя ОС, под которым запущен web-сервер без повышения прав (и на том же компьютере, где запущен web-сервер).
Если база клиент-серверная и проверяется подпись на сервере, то наличие связи надо проверять для пользователя ОС, под которым запущен сервер 1С без повышения прав (если используется web-сервер, то все равно проверки выполнять для пользователя ОС, под которым запущен сервер 1С). В этом случае ошибка в проверке подписи на клиенте проблемой не является.
Если база клиент-серверная и проверяется подпись на клиенте, то наличие связи надо проверять для пользователя ОС, под которым запускается сеанс 1С на машине-клиенте без повышения прав. В этом случае ошибка в проверке подписи на сервере проблемой не является.
Необходимо выяснить в каком из вышеперечисленных режимов происходит запуск 1С при возникновении ошибки, а также в какой проверке возникает ошибка (проверка на сервере или на клиенте). Все дальнейшие рекомендации выполнять на нужной машине и в сеансе нужного пользователя ОС без повышения прав (т.е. без «запуск от имени администратора»).
1. Проверить, что сертификат установлен в Личный список сертификатов пользователя ОС, а также наличие связи с закрытым ключом:
1.2. В консоли развернуть папку «Личное» и перейти в «Сертификаты».
1.3. Открыть проблемный сертификат.
В сведениях о сертификате не должно быть красного креста или восклицательного знака.
2. Проверка связи и перепривязка средствами криптопровайдера:
2.1. В сеансе пользователя ОС (без повышения прав) переустановить сертификат в Личное хранилище сертификатов с привязкой к закрытому ключу (Инструкция по переустановке http://1c-edo.ru/handbook/28/4008/).
2.2. Если сертификат установлен в Личном хранилище сертификатов администратора ОС (т.е. в реестре администратора), тогда нужно его (вместе с закрытым ключом) экспортировать в файл средствами Windows (в файл pfx). А затем импортировать в сеансе пользователя ОС, из под которого выполняется запуск 1С без повышения прав. Для этого необходимо в сертификате перейти на вкладку «Состав» и нажать «Копировать в файл…»
В мастере экспорта сертификатов необходимо выбрать «Да, экспортировать закрытый ключ» и нажать «Далее».
На следующем шаге автоматически определится предпочтительный формат экспортируемого файла (.PFX). Необходимо нажать «Далее».
После чего необходимо задать пароль для закрытого ключа, а также выполнить его повторный ввод в поле «Подтверждение» и нажать «Далее».
На следующем шаге мастера экспорта сертификатов требуется указать имя файла и доступную директорию компьютера.
И завершить экспорт.
В сеансе пользователя, двойным щелчком левой кнопки мыши по экспортированному файлу, необходимо запустить мастер импорта сертификатов.
В поле «Расположение хранилища» выбрать «Текущий пользователь» и нажать «Далее».
Импортируемый файл определится автоматически.
На следующем шаге мастера необходимо ввести пароль, который был указан при экспорте файла, и нажать «Далее».
После чего завершить импорт сертификата, выбрав «Автоматически выбрать хранилище на основе типа сертификата».
Если криптосредство (КриптоПро, VipNet) не запускается без повышения прав в сеансе пользователя ОС, из-под которого выполняется запуск приложений 1С (запуск сервера 1С или web-сервера для файловой ИБ), рекомендуется выполнить переустановку криптосредства, чтобы оно было доступно в сеансе пользователя ОС, из-под которого выполняется запуск приложений 1С (и/или сервера/web-сервера).