Java keytool: вставка закрытого ключа в сертификат X.509 - PullRequest
1 голос
/ 06 марта 2011

Имеет ли Java keytool возможность экспортировать сертификат X.509 с закрытым ключом в нем?

Я рассматриваю сценарий, в котором пользователи создают сертификат (с закрытым ключом в нем) и предоставляютэто к инструменту подписи.Средство подписи использует закрытый ключ в сертификате для подписи целевого файла.В конечном итоге закрытый ключ удаляется из сертификата, а сертификат прикрепляется к целевому файлу для распространения.

Ответы [ 4 ]

2 голосов
/ 30 марта 2011

Я пока не могу комментировать, поэтому буду использовать эту форму: Обычно для хранения сертификата с закрытым ключом используется PKCS # 12 http://en.wikipedia.org/wiki/PKCS#12. Также можно сохранить пару открытого и закрытого ключей в контейнере PCKS # 8 и отправить сертификат отдельно.

Если вам интересно, я думаю, у меня есть несколько примеров кода Java для хранения PKCS # 12.

Кроме того, EJBCA Центр сертификации Java с открытым исходным кодом (http://www.ejbca.org/) - отличный источник примеров.

1 голос
/ 23 февраля 2013

Ключи и их подписанные сертификаты часто хранятся в контейнерах хранилищ ключей, таких как PKCS12 или JKS Java. Также возможно извлечь сертификаты и ключи в файлы формата PEM для использования в приложениях, таких как Apache HTTPD.

Чтобы извлечь сертификаты и ключи из файла JKS, необходимо преобразовать его в файл формата PKCS12 перед извлечением сертификатов с помощью openssl:

keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.pkcs12 -deststoretype pkcs12
openssl pkcs12 -in keystore.pkcs12 -out mycert.crt -nokeys
openssl pkcs12 -in keystore.pkcs12 -out mykey.key -nocerts
1 голос
/ 24 ноября 2012

keytool (исполняемый файл командной строки) не имеет возможности экспортировать личные ключи.Но вы можете использовать JSA-API, чтобы сделать это программно (хотя и не пытался).

1 голос
/ 24 апреля 2011

Сгенерированные закрытые ключи никогда не используются и не передаются другими для каких-либо целей.Знающие инструменты, которые я знаю, будут использовать свой личный ключ для создания своей подписи для сертификации вашего открытого ключа.Например, вы генерируете пару ключей с помощью keytool и отправляете CSR в CA.CA будет использовать свой собственный ключ pvt, чтобы поставить свою подпись на сертификате.

...