Ошибка целостности файла масок контейнера криптопро error code 966787066
Криптопровайдер КриптоПро на сегодняшний день является, пожалуй, самым популярным на рынке, по крайней мере в России. Я хочу рассказать, как быстро и удобно перенести большое количество контейнеров закрытых ключей CryptoPro и сертификатов к ним. Существует штатный механизм в самой программе, работает в ручном режиме и не подходит, когда надо перенести большое количество.
Введение
Мне постоянно приходится иметь дело с сертификатами, токенами, закрытыми ключами, криптопровайдерами и прочим. Сейчас все завязано на это — банкинг, сдача отчетности в разные гос органы, обращения опять же в эти органы, в том числе и физ лиц. В общем, с этой темой рано или поздно придется познакомиться многим. Для того, чтобы перенести все это хозяйство с одного компьютера на другой, иногда приходится прилично повозиться, особенно тем, кто не в теме.
Перенести закрытые ключи и сертификаты КриптоПро на другой компьютер можно двумя способами:
- Перенести или скопировать контейнер закрытого ключа через стандартную оснастку CryptoPro в панели управления. Это самый простой и быстрый способ, если у вас не много сертификатов и ключей. Если же их несколько десятков, а это не такая уж и редкость, то такой путь вам не подходит.
- Скопировать сертификаты и ключи непосредственно через перенос самих исходных файлов и данных, где все это хранится. Объем работы одинаков и для 5 и для 50-ти сертификатов, но требуется больше усилий и знаний.
Я опишу оба этих способа, но подробно остановлюсь именно на втором способе. В некоторых ситуациях он является единственно возможным.
Важное замечание. Я буду переносить контейнеры закрытого ключа, которые хранятся в реестре. Если вы храните их только на токене, то переносить контейнеры вам не надо, только сертификаты.Копирование закрытого ключа через оснастку КриптоПро
Для того, чтобы скопировать контейнер для хранения закрытого ключа сертификата штатным средством, необходимо в Панели управления открыть оснастку CryptoPro, перейти в раздел Сервис и нажать Скопировать.
Далее вы выбираете текущий контейнер, который хотите скопировать. Это может быть либо токен, либо реестр компьютера. Затем новое имя и новое расположение контейнера. Опять же, это может быть как реестр, так и другой токен.
Ошибка копирования контейнера
Но тут есть важный нюанс. Если во время создания закрытого ключа он не был помечен как экспортируемый, скопировать его не получится. У вас будет ошибка:
Ошибка копирования контейнера. У вас нет разрешений на экспорт ключа, потому что при создании ключа не был установлен соответствующий флаг. Ошибка 0x8009000B (-2146893813) Ключ не может быть использован в указанном состоянии.
Если получили такую ошибку, то для вас этот способ переноса не подходит. Можно сразу переходить к следующему.
Отдельно расскажу, как скопировать сертификат и закрытый ключ к нему в файл, чтобы перенести на другой компьютер без использования токена. Штатные возможности CryptoPro не позволяют скопировать закрытый ключ в файл.
Запускаем Internet Explorer, открываем его настройки и переходим на вкладку Содержание. Там нажимаем на Сертификаты.
Выбираем нужный сертификат и нажимаем Экспорт.
Если у вас после слов «Экспортировать закрытый ключ вместе с сертификатом» нет возможности выбрать ответ «Да, экспортировать закрытый ключ«, значит он не помечен как экспортируемый и перенести его таким способом не получится. Можно сразу переходить к другому способу, который описан ниже.
Если же такая возможность есть, то выбирайте именно этот пункт и жмите Далее. В следующем меню ставьте все галочки, так вам будет удобнее и проще в будущем, если вдруг опять понадобится копировать ключи уже из нового места.
Укажите какой-нибудь пароль и запомните его! Без пароля продолжить нельзя. В завершении укажите имя файла, куда вы хотите сохранить закрытый ключ. Теперь вам нужно скопировать сам сертификат. Только что мы копировали закрытый ключ для него. Не путайте эти понятия, это разные вещи. Опять выбираете этот же сертификат в списке, жмите Экспорт и выберите файл формата .CER.
Сохраните сертификат для удобства в ту же папку, куда сохранили закрытый ключ от него.
В итоге у вас должны получиться 2 файла с расширениями:
Вам достаточно перенести эти 2 файла на другой компьютер и кликнуть по каждому 2 раза мышкой. Откроется мастер по установке сертификатов. Вам достаточно будет выбрать все параметры по-умолчанию и понажимать Далее. Сертификат и контейнер закрытого ключа к нему будут перенесены на другой компьютер.
Я описал первый способ переноса в ручном режиме. Им можно воспользоваться, если у вас немного сертификатов и ключей. Если их много и руками по одному переносить долго, то переходим ко второму способу.
Массовый перенос ключей и сертификатов CryptoPro с компьютера на компьютер
В интернете достаточно легко находится способ переноса контейнеров закрытых ключей КриптоПро через копирование нужной ветки реестра, где это все хранится. Я воспользуюсь именно этим способом. А вот с массовым переносом самих сертификатов у меня возникли затруднения и я не сразу нашел рабочий способ. Расскажу о нем тоже.
Для дальнейшей работы нам надо узнать SID текущего пользователя, у которого мы будем копировать или переносить сертификаты с ключами. Для этого в командной строке выполните команду:
В данном случай zerox — имя учетной записи, для которой узнаем SID.
Далее скопируем контейнеры закрытых ключей в файл. Для этого на компьютере открываем редактор реестра и переходим в ветку:
где S-1-5-21-4126079715-2548991747-1835893097-1000 — SID пользователя, у которого копируем сертификаты. Выбираем папку Keys и экспортируем ее.
Сохраняем ветку реестра в файл. В ней хранятся закрытые ключи.
Теперь нам нужно скопировать сразу все сертификаты. В Windows 7, 8 и 10 они живут в директории — C:\Users\zerox\AppData\Roaming\Microsoft\SystemCertificates\My. Сохраняйте эту директорию.
Для переноса ключей и сертификатов нам надо скопировать на другой компьютер сохраненную ветку реестра и директорию с сертификатами My. Открываем файл с веткой реестра в текстовом редакторе и меняем там SID пользователя со старого компьютера на SID пользователя нового компьютера. Можно прям в блокноте это сделать поиском с заменой.
После этого запускаем .reg файл и вносим данные из файла в реестр. Теперь скопируйте папку My с сертификатами в то же место в профиле нового пользователя. На этом перенос сертификатов и контейнеров закрытых ключей КриптоПро завершен. Можно проверять работу.
Я не раз пользовался этим методом, на текущий момент он 100% рабочий. Написал статью,чтобы помочь остальным, так как сам не видел в интернете подробной и понятной с первого раза статьи на эту тему. Надеюсь, моя таковой получилась.
If you liked my post, feel free to subscribe to my rss feeds
This entry was written by admin and posted on 7th Апрель 2018 at 1:44 дп and filed under Uncategorised. Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment(Latest is displayed first) or leave a trackback: Trackback URL.
Такую ошибку несложно устранить без вызова специалиста или обращения в службу поддержки. Алгоритм действий, направленных на решение этой проблемы, приводится ниже.
Что может послужить причиной такой ошибки
- установка сертификата впервые;
- экспортирование данных на внешний носитель;
- попытка просмотра ключей в контейнерах ключей;
- загрузка информации на компьютер извне.
В целях устранения ошибки обычно бывает достаточно произвести корректную ручную переустановку сертификата.
Решение ошибки: отсутствие электронного сертификата в контейнере закрытого ключа
Для начала запускаем «КриптоПро» нажатием кнопки «Пуск». Затем выбираем «Настройку», в возникающем на мониторе окне заходим в опцию панели управления, далее «сервис – установить личный сертификат».
Далее, через кнопку «обзор» указываем путь, где сохранен открытый ключ – файл с расширением *.cert или *.crt
Жмём «Далее», в мастере установки сертификата мы увидим путь, который указывали до нашего сертификата.
Нам отображается информация, содержащаяся в открытом ключе на пользователя, жмём «далее»
В следующем окне можно воспользоваться двумя путями поиска нужного контейнера закрытого ключа:
- «найти контейнер автоматически
- вручную через «обзор»
В первом случае КриптоПро на основе данных из открытого ключа подберет закрытый, в случае с ручным поиском нужно будет знать название закрытого ключа, чтобы выбрать его для установки
Самый простой вариант выбрать автоматический поиск, затем после «обнаружения» необходимого контейнера, мы увидим заполненную строчку с его именем и после жмём «Далее»
Личный сертификат пользователя всегда устанавливается в хранилище «Личное», можно выбрать как вручную, так и КриптоПро может сделать это за вас по умолчанию, затем подтверждаем установку цепочки сертификатов и жмём «Далее»
В случае успешной установки КриптоПро выдаст окно с информацией об окончании процедуры и жмём «Готово»
Затем появится окно с подтверждением данной операции, жмём «ДА»
В следующем окне увидим информацию о том, что процесс окончен успешно. Сертификат установлен в контейнер закрытого ключа.
Особенности версий КриптоПро
С января 2019 года квалифицированные сертификаты могут выпускаться только по ГОСТ 2012, выпуск по другому ГОСТу прекращен. Мы об этом писали ранее в статье. Важно помнить, что версии криптопро на ГОСТ 2012 работают только с версии 4.0 и выше. Все старые версии КриптоПро, для нормальной работы, потребуется обновить или заменить на актуальную. Сделать это нужно не позднее 31 декабря 2019 года.
Типовые ошибки ЭБ
Jinn Sign Extension Provider
Jinn Sign Extension Provider может не до конца установится, если использовать предложенную папку по умолчанию (папка в профиле пользователя). Если пользователь на кирилице 100% будут проблемы.
Надо изменить папку на C:\Program Files\Security Code\ (если х64, то папку C:\Program Files(х86)\Security Code\)
Параметры командной строки для тихой установки Jinn Sign Extension Provider сразу для всех пользователей Windows (путь можете указать свой, лишь бы он был доступен для всех пользователей):
msiexec /i JinnSignExtensionSetup.msi /qn INSTALLLOCATION="%ALLUSERSPROFILE%\Security Code" ALLUSERS=1
ПРИМЕЧАНИЕ: Командную строку нужно запускать по правой кнопки мыши с выбором "Запуск от имени администратора"
Jinn не видит контейнер
Не корректно установленный или вообще не установленный eXtended Container(пути решения представлены ниже).
Так же бывают проблемы с отобраджением сертификатов по ГОСТу 2001. Без необходимости eXtended Container лучше не ставить.
Второй причиной может заключаться в названии организации, для сертификатов по ГОСТу 2012, превышает 127 символов(а в некоторых случаях и 74 символа), то jinn просто не видит контейнер с таким сертификатом.
Континент TLS 2 "Доступ к конфигурационному файлу запрещен"
Ошибка Континент TLS 2 "Доступ к конфигурационному файлу запрещен" связана с отсутствием прав на чтение-запись.
Все установщики запускать через *.ехе, а не через *.msi и от имени администратора. Либо используем командную строку для *.msi. Если это не помогло, смотрим права на ветку реестра [HKEY_LOCAL_MACHINE\SOFTWARE\SecurityCode]
Так же встречаются аналогичные проблемы с директориями.
c:\Program Files\Security Code\
УНИВЕРСАЛЬНОЕ РЕШЕНИЕ
1. Через панель управления удалить ВСЕ продукты КриптоПро и Кода Безопасности, перезагрузка
2. Удаление через cspclean (CryptoPRO)и cspcleaner -to (Код Безопасности), перезагрузка,
3. Удаление следов в ProgramFiles, удаление веток [HKEY_LOCAL_MACHINE\SOFTWARE\SecurityCode] и [HKEY_LOCAL_MACHINE\SOFTWARE\Security Code], перезагрузка
4. Установить необходимых библиотеки Visual C++ (vcredist). Есть в составе продуктов Кода Безопасности
5. Установка КриптоПро 4.0.9944 или 4.0.9963, перезагрузка
6. Установка Jinn v1.0.3050
7. Установка Jinn Sign Extension Provider
8. Установка eXtended Container(ранее XC) v 1.0.2.2
5. Установка TLS клиента 2.0.1440
Желательно ставить x86(32 разрядное ПО) Если работаем через IE запускаем из ..\Program Files(х86)\..
В противном случае соблюдаем разрядность для всего ПО.
На заметку Континент АП 3.7.7.651
Для установивших Континент АП 3.7.7.651 с криптопровайдером КБ(Код Безопасности) CSP
Для правильной установки Континент TLS-клиент». Версия 2 придётся удалять Континент АП и вычистить следы утилитой от кода безопасности с параметрами -to из командной строки от имени администратора. При установке Континент АП обязательно должен быть установлен КриптоПРО. Тогда TLS клиент не будет пытаться установить или обновить свой криптопровайдер. Затем устанавливаем Континент АП с его криптопровайдером.
На флэшке вообще не видит. Jinn-Client пишет иероглифами про тебя гадости.
Майор Пэйн работает над новыми фичами для тебя в Электронном бюджете наивный ты эникейщик.
В программах и компонентах будет что-то типа XC. Тогда ошибка validation failed or not avaliable yet возможно исчезнет.
Jinn-Client показывает иероглифы при подписи и виснет или нет подписей в списке на флешке.
Вы кстати знаете где смотреть какой ГОСТ у вашей подписи?
Так выглядит подпись с ГОСТ2012, очевидно для 2001 в этой секции будет ГОСТ 2001
Но сейчас надо что-то делать. Решительно качаем конвертер для подписей там есть инструкции. Если не доверяем мне идем на сайт читаем, качаем. Ставить ничего не надо. Распаковываем архив, запускаем .exe файл. Если в крипто про подписи установлены верно в появившимся окне будет выбор из всех подписей с пометками кто какого госта (если есть проблемы с КриптоПРО рекомендую почитать тут).
Важно, при конвертации с вас спросят поставить пароль даже если его не было. Отказаться нельзя, сойдет хоть пробел. Жмем далее и выбираем на какую флешку хоронить подпись. Появятся два файла с названием TE.cer и TEcont.p15. Переименовывать их нельзя и как следствие на одну флэху две подписи не запихать. Если кто знает как это провернуть буду благодарен за ответ в комментах.
Собственно на этом все, на этом Jinn Client должен перестать вам показывать иероглифы. Радуемся жизни и ждем новых подстав от майора Пейна.
Читайте также: