- Тип авторитета сертификата (CA): Сертификат, выпущенный
неинтегрированным Ca < /strong> < /li>
. />e=[email protected] - Имена DNS: 0 имен DNS
- Период достоверности (в месяцах): 24
- Тип контента: pkccs#12
- Да
[*] Увеличенные ключевые использование (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