Как правильно кодовый знак с использованием сертификата, хранящегося в Vault Azure Key с включенной цепочкой доверия?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно кодовый знак с использованием сертификата, хранящегося в Vault Azure Key с включенной цепочкой доверия?

Сообщение Anonymous »

Наш Ca, Globalsign выпустил сертификат подписания кода, предназначенный для HSM. Я создал лицензионное ключевое хранилище в Azure, так как базовый не поддерживает HSM. Затем я сгенерировал сертификат в ключевом хранилище, используя следующую политику выдачи: < /p>
  • Тип авторитета сертификата (CA): Сертификат, выпущенный
    неинтегрированным Ca < /strong> < /li>
    . />e=[email protected]
  • Имена DNS: 0 имен DNS
  • Период достоверности (в месяцах): 24
  • Тип контента: pkccs#12
  • Да
Configuration Configuration

[*] Увеличенные ключевые использование (ekus): 1.3.6.5.5.7.3.3
right usgaret: orship>
флаг. Engipherment
[*] Ключ повторного использования при обновлении?: нет
[*] Экспортируемый личный ключ?: нет
[*] Тип ключа: rsa-hsm
strong> 406

strong> 406
Включить прозрачность сертификата?: Да < /strong> < /li>
Тип сертификата: {empty} < /li>
< /ul>
Как только он был инстинкционирован в ключевой Vault, я нажимал на операцию на сертификате и загрузил CSR. После того, как сертификаты были сгенерированы, я получил страницу, на которой я мог бы загрузить цифровой сертификат и 2 промежуточных сертификата. Имена файлов были: OS123456789.cer, Merdmediate1.cer и Intermediate2.cer < /p>
Я затем вернулся в хранилище ключа Azure и нажмите «Запрос с подписанием Merge». Затем я выбрал OS123456789.cer, и он был успешным. /> Я скачал azure-security-keyvault-jca-2.8.1.jar
и поместил его в %java_home &/jre/lib/ext
Команда Jarsigner, которую я использую:

jarsigner -keystore NONE -storetype AzureKeyVault -verbose -storepass "" -tsa http://timestamp.globalsign.com/tsa/r6advanced1 -providerName AzureKeyVault -providerClass com.azure.security.keyvault.jca.KeyVaultJcaProvider -J"-Dazure.keyvault.uri=$KEYVAULT_URL" -J"-Dazure.keyvault.tenant-id=$TENANT" -J"-Dazure.keyvault.client-id=$CLIENT_ID" -J"-Dazure.keyvault.client-secret=$CLIENT_SECRET" -signedjar "signed.jar" "unsigned.jar" $CERT_ALIAS
< /code>
Вывод подписи выглядит так: < /p>
updating: META-INF/MANIFEST.MF
adding: META-INF/GLOBALSI.SF
requesting a signature timestamp
TSA location: http://timestamp.globalsign.com/tsa/r6advanced1
adding: META-INF/GLOBALSI.RSA
A BUNCH OF FILES
signing: clientlogging.properties
adding: JNLP-INF/
signing: JNLP-INF/APPLICATION_TEMPLATE.JNLP
>>> Signer
X.509, EMAILADDRESS=[email protected], CN=JohnDoe, O=JohnDoe, L=DoeVille, C=US
[trusted certificate]
>>> TSA
X.509, CN=Globalsign TSA for CodeSign1 - R6 - 202311, O=GlobalSign nv-sa, C=BE
[certificate is valid from 07/11/23 18:13 to 09/12/34 18:13]
X.509, CN=GlobalSign Timestamping CA - SHA384 - G4, O=GlobalSign nv-sa, C=BE
[certificate is valid from 20/06/18 02:00 to 10/12/34 01:00]
X.509, CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R6
[trusted certificate]

jar signed.

The timestamp will expire on 2034-12-09.
< /code>
Пока выглядит хорошо, я думаю.
Однако, когда я запускаю: < /p>
jarsigner -verify -verbose -certs signed.jar
< /code>
Я получаю следующий вывод: < /p>
s 291951 Tue Sep 24 12:09:10 CEST 2024 META-INF/MANIFEST.MF

>>> Signer
X.509, EMAILADDRESS=[email protected], CN=JohnDoe, O=JohnDoe, L=DoeVille, C=US
[certificate is valid from 20/09/24 16:00 to 03/09/27 14:19]
[Invalid certificate chain: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
>>> TSA
X.509, CN=Globalsign TSA for CodeSign1 - R6 - 202311, O=GlobalSign nv-sa, C=BE
[certificate is valid from 07/11/23 18:13 to 09/12/34 18:13]
X.509, CN=GlobalSign Timestamping CA - SHA384 - G4, O=GlobalSign nv-sa, C=BE
[certificate is valid from 20/06/18 02:00 to 10/12/34 01:00]
X.509, CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R6
[trusted certificate]

292002 Tue Sep 24 12:09:12 CEST 2024 META-INF/GLOBALSI.SF
8401 Tue Sep 24 12:09:12 CEST 2024 META-INF/GLOBALSI.RSA
0 Tue Sep 10 16:47:38 CEST 2024 META-INF/

A BUNCH OF FILES

sm 1111 Tue Sep 10 16:47:36 CEST 2024 JNLP-INF/APPLICATION_TEMPLATE.JNLP
[entry was signed on 24/09/24 12:09]
>>> Signer
X.509, EMAILADDRESS=[email protected], CN=JohnDoe, O=JohnDoe, L=DoeVille, C=US
[certificate is valid from 20/09/24 16:00 to 03/09/27 14:19]
[Invalid certificate chain: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
>>> TSA
X.509, CN=Globalsign TSA for CodeSign1 - R6 - 202311, O=GlobalSign nv-sa, C=BE
[certificate is valid from 07/11/23 18:13 to 09/12/34 18:13]
X.509, CN=GlobalSign Timestamping CA - SHA384 - G4, O=GlobalSign nv-sa, C=BE
[certificate is valid from 20/06/18 02:00 to 10/12/34 01:00]
X.509, CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R6
[trusted certificate]

s = signature was verified
m = entry is listed in manifest
k = at least one certificate was found in keystore
i = at least one certificate was found in identity scope

Signed by "EMAILADDRESS=[email protected], CN=JohnDoe, O=JohnDoe, L=DoeVille, C=US"
Digest algorithm: SHA-256
Signature algorithm: SHA256withRSA, 4096-bit key
Timestamped by "CN=Globalsign TSA for CodeSign1 - R6 - 202311, O=GlobalSign nv-sa, C=BE" on Tue Sep 24 10:09:12 UTC 2024
Timestamp digest algorithm: SHA-256
Timestamp signature algorithm: SHA256withSHA256withRSA, 3072-bit key

jar verified.

Warning:
This jar contains entries whose certificate chain is invalid. Reason: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

The signer certificate will expire on 2027-09-03.
The timestamp will expire on 2034-12-09.
< /code>
Проверка не удается со следующим предупреждением: < /p>
This jar contains entries whose certificate chain is invalid. Reason: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
< /code>
Насколько я понимаю, это происходит потому, что он не может определить цепочку доверия к CA.
Я использовал KeyTool для импорта промежуточных сертификатов в мой локальный магазин ключей, расположенный под моим домашним каталогом. Затем я снова подписал файлы JAR, и на этот раз Jarsigner смог проверить файл JAR без каких -либо предупреждений. и Oracles < /p>
Мои вопросы: < /p>

У вас есть какие -либо идеи о том, как решить это? Предоставлено.

Подробнее здесь: https://stackoverflow.com/questions/790 ... vault-with
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как правильно подписать код с помощью сертификата, хранящегося в Azure Key Vault, с включенной цепочкой доверия?
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • VSTS Build Pipeline: тест не сбои, подключаясь к Vault Azure Key Vault
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Проблема с Azure Key Vault Vault в приложении .NET 6 Container перед Build ()
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Проблема с Azure Key Vault Vault в приложении .NET 6 Container перед Build ()
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как я могу использовать Secrets.json и Vault Key Vault без изменения переменных?
    Гость » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Гость

Вернуться в «JAVA»