Если в операционной системе Windows сертификат и закрытый ключ могут находится в локальном хранилище Crypto API, то для работы под операционными системами Linux или OS X его нужно импортировать в специальное системное хранилище.
Важно, чтобы у закрытого ключа должен быть установлен флаг «Экспортируемый»
Перенос выполняется в два шага – экспорт контейнера и сертификата, импорт контейнера и установка сертификата в личное хранилище:
В операционной системе Windows скопировать контейнер закрытого ключа можно следующим образом:
- Откройте приложение КриптоПро CSP и перейдите на вкладку Сервис.
- На вкладке выберите команду Скопировать контейнер закрытого ключа.
- Введите пароль для ключевого контейнера и задайте имя ключевого контейнера (например, test).
- Сохраните контейнер на диск или флешку.
- После этого откройте диалог Сертификаты (должна запуститься консоль MMC), перейдите в раздел Личное, Реестр, Сертификаты и экспортируйте сертификат без закрытого ключа с помощью мастера. Сохраните его в файл (например, test.cer).
Для импорта сертификата под операционными системами Linux (OS X) выполните следующие действия.
- Скопируйте контейнер закрытого ключа (директорию /test/ в формате 8.3) и файл сертификата (test.cer) из корня дискеты или флешки в директорию /var/opt/cprocsp/keys/имя_пользователя.
- При этом необходимо проследить чтобы: владельцем файлов был пользователь, в директории с именем которого расположен контейнер (от его имени будет осуществляться работа с ключами); на директорию с ключами были выставлены права, разрешающие владельцу всё, остальным ничего; на файлы были выставлены права, разрешающие владельцу по крайней мере чтение и запись, остальным ничего.
Проверить, отображается ли контейнер можно командой
/opt/cprocsp/bin//csptest -keyset -enum_cont -fqcn -verifycontext
Привязать сертификат к закрытому ключу можно командой
/opt/cprocsp/bin//certmgr -inst -store uMy -file /var/opt/cprocsp/keys/<сертификат>.cer -cont '\\.\HDIMAGE\test' –pin *****
Выполнить проверку привязки сертификата к закрытому ключу можно через команду
/opt/cprocsp/bin//certmgr -list -store uMy
В результате выполнения предыдущей команды должно быть выведено сообщение
PrivateKey Link: Yes. Container: HDIMAGE\\test.000\.
В приведенных выше командах подразумевается один из следующих идентификаторов платформы: ia32 - для 32-разрядных систем Linux; amd64 - для 64- разрядных систем Linux; не указывается - для OS X.