OpenSSL показывает использование команды openssl pkcs12 -export в Windows?

Вопрос или проблема

Я пытаюсь создать файл pcks12 в Windows. Не вижу, что не так с моей командой, запущенной от имени администратора на Windows 7 64 бита. Все входные файлы существуют. В качестве альтернативы я получаю сообщение о неправильном использовании или ошибку “невозможно загрузить закрытый ключ 5712:ошибка:0906D06C:PEM routines”.

Любая помощь будет очень ценна!
Берт

openssl pkcs12 -export -in c:\opensslkeys\server.crt -inkey c:\opensslkeys\rsakpubcert.key -keysig -out C:\opensslkeys\mypublicencryptionkey.p12

Использование: pkcs12 [опции]
где опции
-export       выходной файл PKCS12
-chain        добавить цепочку сертификатов
-inkey file   закрытый ключ, если не infile
-certfile f   добавить все сертификаты из f
-CApath arg   - каталоги CA в формате PEM
-CAfile arg   - файл CA в формате PEM
-name "name"  использовать имя в качестве дружественного имени
-caname "nm"  использовать nm в качестве дружественного имени CA (можно использовать более одного раза).
-in  infile   входное имя файла
-out outfile  имя выходного файла
-noout        ничего не выводить, только проверить.
-nomacver     не проверять MAC.
-nocerts      не выводить сертификаты.
-clcerts      выводить только клиентские сертификаты.
-cacerts      выводить только сертификаты CA.
-nokeys       не выводить закрытые ключи.
-info         дать информацию о структуре PKCS#12.
-des          шифровать закрытые ключи с помощью DES
-des3         шифровать закрытые ключи с помощью тройного DES (по умолчанию)
-idea         шифровать закрытые ключи с помощью IDEA
-seed         шифровать закрытые ключи с помощью SEED

Хорошо, понял! Я перепутал ключи, и -keysig больше не требуется. Правильная команда была:

openssl pkcs12 -export -in c:\opensslkeys\server.crt -inkey c:\opensslkeys\rsakprivnopassword.key -out c:\opensslkeys\mypublicencryptionkey.p12

Ответ или решение

Генерация хранилища PKCS#12 с использованием OpenSSL на Windows

При работе с OpenSSL для создания файлов формата PKCS#12 на операционной системе Windows могут возникать различные ошибки и трудности. В вашем вопросе упоминается ошибка, связанная с загрузкой приватного ключа, а также некорректное использование аргументов команды. Рассмотрим, как правильно сформировать команду openssl pkcs12 -export и избежать наиболее распространенных ошибок.

1. Структура команды OpenSSL

Команда для создания PKCS#12 файлов имеет следующую структуру:

openssl pkcs12 -export -in <сертификат> -inkey <приватный_ключ> -out <имя_выходного_файла>
  • -in: путь к основному сертификату (обычно в формате .crt).
  • -inkey: путь к приватному ключу (обычно в формате .key).
  • -out: путь к выходному файлу, который будет содержать хранилище PKCS#12.

2. Анализ оригинальной команды

В вашем коде:

openssl pkcs12 -export -in c:\opensslkeys\server.crt -inkey c:\opensslkeys\rsakpubcert.key -keysig -out C:\opensslkeys\mypublicencryptionkey.p12

Есть несколько нюансов:

  • Использование -keysig предполагает, что ключ должен использоваться для подписи сертификата. Если вы просто экспортируете сертификат и его соответствующий приватный ключ, этот аргумент может быть ненужным.
  • Путь к приватному ключу нужно проверить. Ошибка "unable to load private key" указывает на то, что OpenSSL не может загрузить указанный файл ключа. Убедитесь, что файл ключа действительно существует по данному пути и корректен (т.е. приватный ключ имеет корректный PEM-формат).

3. Корректная команда

Вы указали, что после уточнения, правильная команда выглядит следующим образом:

openssl pkcs12 -export -in c:\opensslkeys\server.crt -inkey c:\opensslkeys\rsakprivnopassword.key -out c:\opensslkeys\mypublicencryptionkey.p12

4. Частые ошибки и их решения

  • Необходимо удостовериться, что приватный ключ свободен от пароля: Если ваш приватный ключ защищен паролем, вам следует либо указать его в команде, либо использовать ключ без пароля для простоты.
  • Проверка формата файлов: Убедитесь, что оба файла (.crt и .key) имеют корректный формат и содержимое. Вы можете использовать команды openssl x509 -text -noout -in <сертификат> и openssl rsa -in <приватный_ключ> -check для проверки их корректности.
  • Права на доступ: Убедитесь, что вы используете командную строку с правами администратора и имеете доступ к указанным файлам.

5. Заключение

При генерации файлов PKCS#12 с помощью OpenSSL важно тщательно следить за правильностью аргументов и форматами используемых файлов. Если возникнут сложности, убедитесь в корректности команд и наличия всех необходимых прав на файлы. Таким образом, вы избежите множества распространенных ошибок и успешно создадите ваше хранилище ключей PKCS#12.

Надеюсь, данное руководство окажется вам полезным в решении вашей задачи. Если возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью!

Оцените материал
Добавить комментарий

Капча загружается...