Можно ли сгенерировать CSR с помощью java.security без пакетов sun или внешней библиотеки?

Можно ли сгенерировать запрос на подпись сертификата с помощью кода Java без использования пакетов sun.* или com.sun.* и без использования внешней библиотеки? Если мне понадобится использовать такую ​​библиотеку, как BouncyCastle, я рассмотрю ее, но пока все мои поиски показывают только примеры, в которых используются пакеты sun или BouncyCastle, и я бы предпочел, если возможно, придерживаться необработанного API.

И как лучше всего это сделать, если то, что я пытаюсь сделать, невозможно?


person sync    schedule 30.11.2012    source источник


Ответы (2)


Я не думаю, что это возможно. Принимайте это до тех пор, пока у кого-то не будет лучшего ответа или пока это не станет возможным.

FWIW, в итоге я использовал оболочку для вызова keytool для этого.

person sync    schedule 11.12.2012
comment
Это было возможно с java 6 (journaldev.com/ 223/), но больше не представляется возможным с java 7. Это действительно отстой - person Lukasz Frankowski; 22.11.2013

Извините за очень поздний ответ, но решил, что все равно попробую. Bouncy Castle или Java-библиотеки чертовски облегчат вам жизнь. Но если вы не можете использовать эти библиотеки для своего проекта, мой ответ вам по-прежнему «да», но вам придется хорошо познакомиться с кодировкой ASN1. Я не вижу причин, по которым вы не можете взять существующий CSR для обучения. Этот сайт (http://lapo.it/asn1js/) очень помог мне понять ASN1, когда мне пришлось подобные вещи. Как только вы увидите, как отформатирован CSR, с помощью инструмента ASN1, о котором я упоминал ранее, станет ясно, как переназначить пример CSR для вашего использования. На высоком уровне вы бы

  1. читать в файле примера
  2. анализировать по кодировке TLV (тип-длина-значение)
  3. замените поле нужными данными
  4. цифровая подпись
  5. вставить подпись
  6. записать обратно содержимое в файл

Объект java.security.Signature должен помочь вам с подписанием.

person penguin4hire    schedule 04.08.2016