Подписать CSR с библиотекой безопасности JAVA / Без использования BC

Я хотел знать, есть ли способ подписать CSR с помощью библиотеки безопасности Java. Мы стараемся не использовать библиотеку Bouncy Castle. В нашем проекте не будет никакой дополнительной зависимости.

Наши CSR, закрытый и открытый ключ CA имеют формат PEM.

С уважением,


person hzrari    schedule 02.03.2018    source источник
comment
Вы можете попробовать это pixelstech.net/article/1464167276-Generating-CSR- использование-Java   -  person pedrofb    schedule 03.03.2018
comment
По ссылке показано, как сгенерировать CSR в pkcs10. Мы согласны с этим, мы хотим подписать этот CSR. Как правило, это шаг после генерации CSR   -  person hzrari    schedule 03.03.2018
comment
Связанный код показывает, как создать и подписать CSR. См. pkcs10.encodeAndSign(x500Name, sig)   -  person pedrofb    schedule 03.03.2018
comment
pkcs10.encodeAndSign(x500Name, sig) подписывает CSR закрытым ключом лица, отправившего запрос: sig.initSign(keyPair.getPrivate()); Мы хотели подписать его с помощью пары ключей CA (фактически закрытый ключ), и на выходе должен быть сертификат X509. Без BouncyCastle, если можно, конечно   -  person hzrari    schedule 21.03.2018
comment
Ваш вопрос может ввести в заблуждение. CSR подписывается запрашивающей стороной, а не ЦС. CA извлекает открытый ключ, некоторую дополнительную информацию, такую ​​как CN, и проверяет подпись. После этого генерируется новый сертификат, содержащий открытый ключ, и подписывается с помощью закрытого ключа ЦС. Здесь у вас есть старый ответ с примером stackoverflow.com/a/37983438/6371459. Я не чувствую себя достаточно сильным, чтобы сделать это без надувного замка   -  person pedrofb    schedule 21.03.2018
comment
Извините за путаницу. Обычно говорят «Подписать CSR», имея в виду процесс создания сертификата на основе открытого ключа, включенного в CSR. В любом случае, мы уже делаем это с надувным замком. Мы изучаем случай, чтобы сделать это без зависимости от BC...   -  person hzrari    schedule 21.03.2018


Ответы (1)


Для этого нет стандартного Java API. Однако вы можете использовать параметр -certreq утилиты keytool для создания CSR с использованием закрытых ключей, хранящихся в хранилище ключей.

person Sean Mullan    schedule 02.03.2018
comment
Я хотел сделать это программно, поэтому с java-кодом внутри нашего приложения. .. - person hzrari; 02.03.2018