Вопрос или проблема
Я пытаюсь создать файл 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.
Надеюсь, данное руководство окажется вам полезным в решении вашей задачи. Если возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью!