OpenSSL 1.0.1e 11 февраля 2013 г.
Генерация самоподписанного сертификата:
openssl req -x509 -newkey rsa:1024 -keyout key.pem -out cert.pem -days 365
В ходе процессаПарольная фраза PEMтребуется:
Введите пароль PEM:
Проверка — Введите пароль PEM:
После успешного завершения в результате есть 2 файлаПЕМформат:
ключ.pem, сертификат.pem
Закрытый ключ (ключ.pem) вПККС#8формат и начальная строка выглядит так:
-----НАЧАЛО ЗАШИФРОВАННОГО ЧАСТНОГО КЛЮЧА-----
Теперь я пытаюсь объединить сертификат, а также связанный с ним закрытый ключ, вПККС#12хранилище ключей и защитите хранилище ключей с помощьюпарольПримечание: насколько я понимаю, это должно эффективно обеспечить запроспарольво время доступа для чтения, а такжепарольная фразадля закрытого ключа соответствующей записи:
openssl pkcs12 -export -inkey key.pem -in cert.pem -out keystore.p12
При исполнении мне было предложено следующее:
Введите пароль для key.pem:
Введите пароль экспорта:
Проверка — введите пароль экспорта:
Однако, насколько я понимаю,парольная фразадолжны оставаться нетронутыми длязакрытый ключкоторый сейчас хранится вхранилище ключей.p12файл. Вот как я пытаюсь прочитать содержимое хранилища ключей:
openssl pkcs12 -nodes -info -in keystore.p12
Вывод, который я получаю (относится только к защите хранилища ключей с помощьюпароль):
Введите пароль для импорта:
И перечисляет сертификат, а также закрытый ключ, в формате PEM без запросапарольная фразадля последнего. Это в основном проблема.Парольная фраза PEMбольше нет длязакрытый ключ. Что я делаю не так или как это исправить? Спасибо.
решение1
Ничего плохого. Так работает PKCS12. PKCS12 — это формат для безопасной передачи цепочек сертификатов и закрытых ключей между токенами. Защита/шифрование закрытого ключа осуществляется с помощью парольной фразы, которую вы ввели при запросе «Введите пароль экспорта». Нет ничего лучше дважды зашифрованных ключей.
EDIT: Опустить -nodes
опцию. Это отключает шифрование закрытого ключа.