Иногда случается так что необходимо перенести клиент-банк или другое разнообразное бухгалтерское и не очень ПО с одного компьютера на другой. В том случае когда в качестве криптопровайдера выступает СКЗИ Крипто-ПРО обычно проблем не возникает — СКЗИ имеет штатные средства копирования ключей. Но не всегда все гладко — в том случае, когда ключевой контейнер находится в реестре Windows, и при генерации ключа
не быларазрядность ОСSID
пользователя, блокнотом правим .reg файл(меняем SID и, если необходимо, путь к конечной ветке), и импортируем его в реестр.
Также этим методом очень удобно бекапить и клонировать ключи тогда, когда их много(например в аутсорс-бухгалтериях).
P.S. Не забывайте после переноса установить сертификаты из криптоконтейнеров в «Личные».
Добавление от Ghool
В крипто-про на контейнеры можно ставить пин-код.
А так же при вводе этого пин-кода можно поставить галочку «сохранить» — и в дальнейшем его вводить не придётся.
Иногда после этого пин-код благополучно забывают (что и произошло у нас в компании).
При копировании вышеописанным методом, контейнер остаётся защищён пин-кодом — а вот «сохранение» этого пин-кода не переносится на новый компьютер.
Что можно сделать в таком случае?
И вот после этого уже копируем ветку реестра на новый комп.
Кстати, что бы не мучаться с подменой SID — можно копировать сертификаты в контейнер компьютера а не пользователя, тогда они будут храниться тут:
Давненько я ничего не писал. И вот снова небольшой квест и рецепт, который не является чем-то новым. Но мне надоело его искать и как многое другое, это то чем я пользуюсь иногда. Если вам надо перенести криптоконтейнеры, ключи и сертификаты с одного ПК на другой в случае КриптоПро, прошу под далее. Мне часто приходится делать это удаленно, что исключает копирование на USB-Flash.
Добавлю перенос лицензии: Перенос лицензии КриптоПро CSP
Начнем с того что выгрузим криптоконтейнеры с компьютера источника на второй компьютер.
2. Найдем ветку реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList
3. Определим SID пользователя(имеет вид, например, S-1-5-21-988151986-1848342132-923548625-1000), и посмотреть ProfileImagePath, в конце строки найдете имя пользователя, которому принадлежит этот SID.
5. В key_crypto.reg меняете через поиск и замену S-1-5-21-988151986-1848342132-923548625-1000, в Вашем случае, старый на нового.
6. Запускаете key_crypto.reg файл, после этого все готово, но необходимо будет заново установить личные сертификаты для того что бы привязать сертификаты к контейнерам.
Если не будет видно контейнеров, то неправильно указали S-1-5-21-988151986-1848342132-923548625-1000, т.к. контейнеры видны только под тем пользователем, под SID’ом которого они находятся.
Откройте диспетчер сертификатов: нажмите кнопку Пуск, в поле Поиск введите certmgr.msc и нажмите клавишу ВВОД. Введите пароль администратора или подтверждение пароля, если появится соответствующий запрос.
Щелкните правой кнопкой сертификат, который нужно экспортировать, наведите указатель мыши на Все задачи, а затем нажмите Экспорт.
В мастере экспорта сертификатов щелкните Далее.
Если сертификат предполагается перенести на другой компьютер, щелкните Да, экспортировать закрытый ключ, в противном случае щелкните Нет, не экспортировать закрытый ключ, а затем нажмите Далее. (Эта возможность появляется, если только закрытый ключ помечен как экспортируемый и имеется доступ к закрытому ключу.)
Выберите нужный формат и нажмите Далее.
Чтобы перенести ключ криптопровайдера КриптоПро CSP с одного компьютера на другой, необходимо:
- Создать копию закрытого ключа на прежнем рабочем месте (компьютере), где первоначально подключен и настроен сервис «1С-Отчетность».
- Установить программу-криптопровайдер КриптоПро CSP на новом рабочем месте, с которого планируется использовать сервис «1С-Отчетность».
- Перенести копию ключа и восстановить закрытый ключ на новом рабочем месте, с которого планируется использовать сервис «1С-Отчетность».
В этой статье рассматривается создание копии закрытого ключа, ее перенос и восстановление закрытого ключа на новом рабочем месте, на котором планируется
использование прежней учетной записи 1С-Отчетности.
Создание резервной копии закрытого ключа КриптоПро CSP
Если копия закрытого ключа создается на компьютере, где в информационной базе есть заявление на подключение к 1С-Отчетности, то чтобы узнать
место хранения контейнера закрытого ключа выполните следующее (рис. 1):
- Перейдите в раздел «Настройки» в окне 1С-Отчетности.
- Перейдите по гиперссылке «Список заявлений».
Если в информационной базе нет заявления на подключение к 1С-Отчетности, то следуйте инструкции, начиная с рис. 3.
При этом откроется форма списка заявлений. Щелкните дважды по строке с заявлением, чтобы открыть его и перейдите к закладке «Служебная
информация» (рис. 2).
В поле «Путь к контейнеру закрытого ключа» указан путь хранения ключа. В конце строки пути указывается имя файла контейнера
закрытого ключа, который нужно будет перенести на другой компьютер.
В нашем примере: REGISTRY1cmastersystem_2017
Запомните имя файла контейнера, чтобы можно было выбрать его из списка, если на компьютере установлено несколько ключей.
Для копирования файла контейнера закрытого ключа необходимо открыть программу КриптоПро CSP (кнопка «Пуск» —
Все программы» — «КРИПТО-ПРО» — «КриптоПро CSP») (рис. 3, 4).
Перейдите на закладку «Сервис» и нажмите кнопку «Скопировать» (рис. 5).
Появится окно копирования контейнера закрытого ключа (рис. 6).
Нажмите кнопку «Обзор», выберите имя контейнера и нажмите «ОК». Если ключевых контейнеров несколько, то чтобы увидеть
полный путь к файлу контейнера выберите переключатель «Уникальные имена».
Имя ключевого контейнера появится в строке выбора (рис. 7). Нажмите «Далее».
Введите имя для создаваемого ключевого контейнера и нажмите «Готово» (рис. 8).
Вставьте флеш-накопитель, на которую будет скопирован контейнер ключа, выберите ее в разделе «Устройства» и нажмите «ОК»
(рис. 9).
Задайте пароль для создаваемого контейнера и нажмите «ОК» (рис. 10).
Контейнер ключа будет скопирован на флеш-накопитель.
Восстановление закрытого ключа КриптоПро CSP из резервной копии
Чтобы восстановить закрытый ключ из копии на новом рабочем месте (компьютере) необходимо сначала установить программу КриптоПро CSP.
Затем можно скопировать файл контейнера на диск или оставить на флеш-накопителе.
Если вы решили хранить закрытый ключ на диске, то его нужно установить его в специальный реестр.
Чтобы это сделать:
- Вставьте флеш-накопитель с копией ключа.
- Откройте программу КриптоПро CSP (кнопка «Пуск» — Все программы» — «КРИПТО-ПРО» — «КриптоПро CSP»)
(см. рис. 3). - Перейдите к закладке «Сервис» и нажмите кнопку «Скопировать» (рис. 11).
- В окне копирования контейнера закрытого ключа нажмите кнопку «Обзор». При этом откроется окно выбора ключевого контейнера,
в котором будут указаны все найденные контейнеры ключей, в т.ч. и находящиеся на флеш-накопителе. - Выделите имя контейнера, находящегося на флеш-накопителе и нажмите «ОК».
Имя ключевого контейнера появится в строке выбора (рис. 12). Нажмите «Далее».
В случае, если для контейнера был задан пароль, введите его в окне ввода пароля и нажмите «ОК».
Введите имя для создаваемого ключевого контейнера (можно оставить прежнее имя) и нажмите «Готово» (рис. 13).
Выберите «Реестр» в разделе «Устройства» и нажмите «ОК».
Задайте пароль для создаваемого контейнера и нажмите «ОК» (рис. 14).
Далее требуется установить сертификат закрытого ключа в хранилище.
Откройте программу КриптоПро CSP (кнопка «Пуск» — Все программы» — «КРИПТО-ПРО» — «КриптоПро CSP»)
(см. рис. 3).
Перейдите на закладку «Сервис» и нажмите кнопку «Просмотреть сертификаты в контейнере» (рис. 15).
Нажмите кнопку «Обзор» в окне «Сертификаты в контейнере закрытого ключа» и выберите имя контейнера из списка (рис. 16).
Если вы скопировали контейнер закрытого ключа в реестр, как описано выше, то выберите имя контейнера из реестра (указано в колонке
«Считыватель»). Если не выполняли копирование и работаете с флеш-накопителя — выберите имя контейнера, который находится на
флеш-накопителе.
Имя выбранного ключевого контейнера будет вставлено в окно «Сертификаты в контейнере закрытого ключа» (рис. 17). Нажмите
«Далее».
При этом появится окно сертификата для просмотра (рис. 18). Нажмите кнопку «Установить».
При этом появится сообщение об успешной установке сертификата в хранилище (рис. 19).
Перенос сертификатов в виде пошаговой инструкции
Первые два пункта я описывать тут не стану, так как я уже это подробно рассказывал, посмотрите по ссылкам. Я расскажу, об остальных методах и начнем мы с классического КриптоПРО.
Данный метод подойдет для тех ситуаций, когда у вас один или 2 сертификата (ЭЦП). Если же их несколько десятков, а это не такая уж и редкость, то такой путь вам не подходит, и там придется выбирать 4-й метод.
Важное замечание. Я буду переносить контейнеры закрытого ключа, которые хранятся в реестре. Если вы храните их только на токене, то переносить контейнеры вам не надо, только сертификаты
Когда нужно переносить сертификаты в другое место?
И так давайте рассмотрим по каким причинам у вас может появиться необходимость в копировании ваших ЭЦП в другое место.
- На текущем физическом компьютере начинает умирать жесткий диск или SSD накопитель (Как проверить жизненные показатели жесткого диска), очень частая история и жизненная, когда люди теряли все свои данные, из-за банальной жадности в покупке нового оборудования и элементарного незнания принципов резервного копирования.
- У вас производится модернизация оборудования, его улучшение и вам нужно перенести все сертификаты с закрытыми ключами на другую систему
- Вы создали отдельный сервер, в виде виртуальной машины, где будут находится все ваши сертификаты и с ними смогут работать все необходимые сотрудники, терминал для бухгалтерии. Простой пример СБИС, и когда у вас 10-20 организаций.
Копирование закрытого ключа из КриптоПро
Это самый простой способ, и будет актуальным при небольшом количестве контейнеров с закрытыми ключами. Чтобы выполнить перенос сертификатов из реестра, откройте ваш КриптоПРО, вкладка «Сервис», нажимаем кнопку «Сервис», далее через кнопку «Обзор», откройте «Выбор ключевого контейнера» и укажите, какой сертификат вы будите переносить. В моем примере это контейнер «Копия сертификата в реестре (Семин Иван)».
Нажимаем «Далее», вас попросят задать новое имя контейнера с закрытым ключом, введите понятное для себя, для удобства.
У вас откроется окно с выбором носителей, вы можете выбрать либо токен, либо флешку для переноса на другое место. У меня это внешний жесткий диск Z:.
Задаем обязательно пароль, с точки зрения безопасности, так как файлы в таком виде просто скомпрометировать.
Все, на выходе я получил папку со случайным названием и набором ключей в формате key.
Если вы пытаетесь копировать сертификат с токена, то в ряде случаев у вас может появиться ошибка: Ошибка копирования контейнера. У вас нет разрешений на экспорт ключа, потому что при создании ключа не был установлен соответствующий флаг. Ошибка 0x8009000B (-2146893813) Ключ не может быть использован в указанном состоянии.
Связана такая ситуация, что в целях псевдобезопасности, удостоверяющие центры выпускают закрытые ключи без возможности экспорта, и таким образом увеличивают свою прибыль, так как в случае утери или поломки токена, вам придется его перевыпускать, а так как экспорт запрещен, то бэкапа вы сделать не сможете.
Если вы получили ошибку копирования контейнера. У вас нет разрешений на экспорт ключа, то метод с КРиптоПРО вам не поможет
Перенос сертификатов из реестра без КриптоПРО
Существуют методы экспортировать закрытый ключ и без использования утилиты КриптоПРО. Представим себе ситуацию, что у вас на него кончилась лицензия и вы не успели ее купить. Вам нужно сдать отчетность в СБИС. Вы развернули CryptoPRO на другом компьютере, так как он позволяет 3 месяца бесплатного использования, осталось для СБИС выполнить перенос сертификатов, которые у вас в реестре Windows.
У нас два варианта:
- Использование оснастки mmc-Сертификаты пользователя.
- Использование Internet Explore
Откройте там контейнер «Личное — Сертификаты». Если у вас в контейнере не один сертификат с одинаковым именем, такое может быть, то откройте сертификат в оснастке mmc и в КриптоПРО и сравните серийные номера сертификата.
В Internet Explore, откройте «Свойства браузера — Содержание — Сертификаты»
Теперь нам необходимо его экспортировать, в оснастке «Сертификаты», через правый клик, это можно сделать, в Internet Explorer, сразу видно кнопку, экспорт.
У вас откроется мастер переноса сертификатов, на первом шаге, просто нажимаем далее. После чего вас спросят, что вы хотите экспортировать, выбираем пункт «да, экспортировать закрытый ключ вместе с сертификатом»
Если ваш закрытый ключ запрещено экспортировать, то эта кнопка будет не активна, и можете сразу закрывать данный метод и переходить к следующему.
Следующим этапом в мастере экспорта сертификатов, вам необходимо выбрать формат выгрузки, это будет PFX архив.
Далее вы задаете обязательно пароль и указываете имя и место, где будите сохранять ваш переносимый контейнер с зарытым ключом в формате pfx.
Мастер экспорта сертификатов, выведет вам сводные данные, нажимаем «Готово».
Отрываем локацию, куда вы его выгрузили, и найдите свой pfx архив.
Теперь вам нужно еще выгрузить открытый ключ в формате cer, для этого так же зайдите в мастер экспорта, но на этот раз выберите «Нет, не экспортировать закрытый ключ».
Выберите формат файла «X.509 (.CER) в кодировке DEP», задайте ему имя и место сохранения. На выходе у вас появятся два файла.
Одни открытый ключ в формате cer и закрытый ключ в формате pfx. Этого набора вам будет достаточно, чтобы перенести сертификаты СБИС, Контура и остальных программ на другой компьютер.
Теперь перенесите эти файлы на другое рабочее место и просто запустите, через простой двойной клик. У вас откроется мастер импорта сертификатов, на первом окне выберите нужное вам хранилище, я в своем примере оставлю «Текущий пользователь».
На втором шаге проверяем импортируемый сертификат.
Указываем пароль, который задавали при выгрузке.
Оставляем автоматический выбор хранилища на основе типа сертификатов.
Готово. Со вторым файлом то же самое. После чего у вас будут перенесены нужные вам ключи и сам сертификат, можно работать.
Как видите предпосылок и вариантов переноса сертификатов из реестра на другой компьютер, предостаточно.
Какие есть варианты по копированию контейнеров закрытых ключей?
- Если мы создаем единый терминал (Виртуальную машину), на которой будут коллективно работать пользователи, то можно произвести конвертирование физической тачки в виртуальную машину
- Если будет просто замена жесткого диска, то можно произвести его клонирование или перенос системы на SSD с помощью специальных утилит
- Можно воспользоваться утилитой КриптоПРО
- Воспользоваться экспортом из реестра Windows.
Массовый перенос ключей и сертификатов CryptoPro на другой компьютер
Выше описанные методы хороши, когда у вас один или 5 ключиков в реестре, а как быть если их десятки. Помню лет 5 назад, когда я еще был младшим администратором, то я очень часто устанавливал электронные цифровые подписи главбуху, так как она работала в СБИС++ и сдавала там постоянно отчетность по огромному количеству организаций, по типу рога и копыта. Держать кучу токенов было не вариант, и для таких вещей у нее все хранилось в реестре и копия сертификатов была на флешке в сейфе. Флешку потом потеряли, встал вопрос сделать резервную копию всего и плюс обновить систему, в виду нового компьютера, на операционной системе Windows 8.1. ЭЦП было штук 50, а так как я ценю свое время, то и искал методы, выполнить это быстрее, к счастью я его нашел.
Заключался метод переноса сертификатов из реестра, в выгрузке веток и подмене SID значения, но обо всем по порядку. О том, как посмотреть SID пользователя и что это такое я рассказывал.
Открываете командную строку cmd и вводите команду:
Вот это S-1-5-21-551888299-3078463796-888888888-46162 и есть SID, вашей учетной записи. Теперь когда вы его знаете, то вам нужно выгрузить ваши закрытые ключи из реестра Windows. Для этого откройте вот такую ветку:
В контейнере Keys, вы найдете все ваши закрытые ключи от ЭЦП. С правой стороны вы увидите файлы:
* header.key
* masks.key
* masks2.key
* name.key
* primary.key
* primary2.key
Щелкаем правым кликом по контейнеру Keys и экспортируем его.
Сохраняем нашу ветку реестра с контейнерами закрытых ключей. Далее нам нужно скопировать открытые ключи, которые лежат по пути:
Не забывайте только подставить своего пользователя, эта папка может быть скрытой, поэтому включите скрытые папки и файлы в вашей ОС. Все содержимое этой папки вам нужно перенести на другой компьютер, только уже в папку другого, нужного пользователя.
Как только вы поместили на новом компьютере папку Key, вы можете перенести реестровую выгрузку. Сохраненный файл в формате reg, вы должны открыть в любом текстовом редакторе.
Как я показывал выше, определите SID нового пользователя, скопируйте его полностью и замените им значение в файле reg, я отметил это стрелками.
SID начинается с S-1 и так далее
Все сохраняйте файл и запускайте его, у вас будет начат перенос сертификатов (закрытых ключей), подтверждаем действие.
Как видите импорт успешно завершен. Все теперь ваши закрытые и открытые ключи на месте и вы можете работать с вашими ЭЦП, и можно считать, что перенос сертификатов с одного компьютера на другой в массовом масштабе, осуществлен успешно.