Как создать CSR без каких-либо атрибутов / запрашиваемых расширений в запросе - Keytool - PullRequest
0 голосов
/ 25 февраля 2019

Можно ли как-нибудь сгенерировать запрос на подпись сертификата с помощью java keyTool, который не содержит никаких атрибутов, таких как «Запрошенные расширения» или каких-либо связанных с ними расширений встроенной информации?

Я новичок в использовании keytool иРабота с клиентом, который хочет, чтобы мы генерировали CSR без информации об атрибутах.

Некоторая справочная информация состоит в том, что у меня истек срок действия закрытого ключа в моем хранилище ключей, что привело меня к созданию нового хранилища ключей с тем же «PrivateKeyEntry»Имя псевдонима как раньше (конечно, это пример, и я изменил имя хранилища ключей и псевдоним «PrivateKeyEntry»):

keytool -keystore example-prod-client-ssl.jks -genkey -alias example-prod-client-ssl -storetype JKS -keysize 2048 -keyalg RSA -sigalg SHA1WithRSA

Мне также нужно было один раз удалить устаревший псевдоним trustCertEntry новое хранилище ключей было сгенерировано, поэтому я экспортировал все действительные сертификаты "trustedCertEntry" из старого хранилища ключей и импортировал их в новый.

Теперь, на этом этапеМне нужно было сгенерировать CSR и иметь знак клиента, так как когда вы генерируетеновое хранилище ключей и "PrivateKeyEntry", оно само подписано.

Я могу легко создать CSR с помощью следующей команды:

keytool -certreq -alias example-prod-client-ssl -file certreq_v2-02112019.csr -keystore example-prod-client-ssl.jks

Однако, когда я анализирую CSR с помощью онлайнЯ вижу, что он содержит некоторую информацию об атрибутах в запросе, а именно: «Запрошенные расширения»: enter image description here

Итак, мой главный вопрос: как я могу сделать так, чтобы атрибутраздел пуст?

В прошлом я видел, что в 2014 году нам приходилось выполнять этот же процесс с заказчиком, и когда я выполняю CSR на старом хранилище ключей (в качестве теста), у меня все еще остаетсяатрибуты, точно такие же, как мой новый запрос CSR.Но клиент не хочет, чтобы они содержались, так как это приводит к ошибке на его стороне.

Также добавьте к этому последний CSR-запрос, который был отправлен клиенту для старого хранилища ключей (не выполнен мной - сделано в 2014 году, однако у меня есть копия этого файла CSR), не содержит этой информации об атрибутах и ​​просто имеет шестнадцатеричные значения «a0: 00»: enter image description here

Таким образом, я считаю, что он изолирован от моего запроса CSR, а не от самого создания нового хранилища ключей, поскольку, когда я генерирую CSR на старом хранилище ключей (все еще доступном для меня), он также содержитэти атрибуты запрашивают расширения.

Я поиграл с добавлением «-ext» к моей команде «-certreq», чтобы попытаться подавить или вставить пустой раздел «Атрибуты» (поскольку я считаю, что если я не использую «-»ext "параметр команда" -certreq "будет по умолчанию, поэтому у меня возникла текущая проблема), но у меня ничего не получается.

1 Ответ

0 голосов
/ 26 февраля 2019

Эта проблема может быть решена, если вы используете Java JDK 1.6 или менее.Моя текущая виртуальная машина работает под управлением JDK 10.0.2, поэтому она автоматически заполняет запрашиваемое расширение атрибута X509V3 SubjectKeyIdentifier в CSR.Я просто скопировал файл хранилища ключей на старую виртуальную машину, которая была у меня с JDK 1.6, и CSR генерирует так, как я хочу, без проблем.

...