Необходимо сгенерировать csr.txt и частный key.txt использование java

#java

#java

Вопрос:

У меня есть сценарий, в котором мне нужно сгенерировать csr и отобразить содержимое csr в csr.txt а затем создайте приватный ключ и отобразите содержимое в privatekey.txt в C: drive без использования OpenSSL для извлечения закрытого ключа

Может ли этот процесс быть достигнут с помощью Java? Может ли keytool выполнить csr и закрытый ключ без использования OpenSSL?

Я пытался использовать keytool для csr, но закрытый ключ у меня не получается.

 keytool -genkey -dname "emailAddress=test@aaa.com, OU=Test1, O=Test, L=TestCity, CN=Test" -alias Test -keyalg RSA -keysize 2048 -keystore test.keystore -storepass changeit

keytool -certreq -alias Test -file "C:csr.txt" -keystore test.keystore -storepass changeit

 

Комментарии:

1. Использование keytool не является программированием, но -certreq уже должно создать файл в текстовом формате (PEM), за исключением того, что вы указали другой и предположительно неправильный псевдоним. keytool не может экспортировать privatekey, но вы можете написать программу для этого.

2. @dave_thompson_085, я новичок в сертификатах на Java, как этого добиться?

3. Если вам не нравится OpenSSL, я бы выбрал проводник хранилища ключей ( keystore-explorer.org ) — сгенерировать хранилище ключей, сгенерировать пару ключей, экспортировать csr, экспортировать закрытый ключ — все включено и протестировано. Для выполнения этого вручную / программно потребуется внешняя библиотека (Bouncy Castle) и потребуется большой опыт.

4. @MichaelFehr KSE — хорошая альтернатива, но экспортировать закрытый ключ как незашифрованный PKCS8 (если это нормально) PEM легко даже без Bouncy, просто KeyStore.getKey() -> PrivateKey.getEncoded() -> Base64.getMimeEncoder().encode() плюс несколько постоянных строк (см. RFC7468).

5. @dave_thompson_085: вы полностью правы, я говорил о полной задаче (специально для экспорта csr), чтобы рекомендовать KSE [я смог сделать это на простой Java, но это много кода, и неопытного программиста ждет много ошибок :-)]