Как лучше добавить цепочку сертификатов pkcs12 в java8 для взаимной аутентификации TLS?

Ссылка скопирована
0 ответов

По вводным: есть веб-сервис с REST API, требующий взаимной аутентификации TLS (1.2).
По вводным: есть JMS-сервер (Aurea) с java8, которому нужно обратиться к этому сервису.

По вводным: выданная сервисом цепочка в pkcs12 СА-провайдер-клиент(+клиентский ключ) успешно применяется в тестовом запросе в Postman, просто указанием предоставленного.pfx файла в настройках.
Сейчас ситуация такая: а из JMS не удается обратиться к сервису:

По вводным: 1) в java, в \lib\security\cacerts при импорте цепочки pkcs12 импортируется только закрытый ключ

keytool.exe -importkeystore -destkeystore .\cacerts -deststoretype JKS -deststorepass changeit -srckeystore d:\_work\test.pfx -srcstoretype PKCS12 -srcstorepass xxx Entry for alias {...} successfully imported. Import command completed: 1 entries successfully imported, 0 entries failed or cancelled

По вводным:!!! 1 entries successfully imported
По вводным: в цепочке импортируется только закрытый ключ клиента, без 3-х сертификатов

По вводным: 2. В локальном win mmc-Сертификаты импортирую цепочку.pfx и экспортирую три сертификата отдельными файлами
По вводным: через keytool импортирую их

keytool.exe -import -deststorepass changeit -trustcacerts -keystore .\cacerts -noprompt -alias ca -file "d:\_work\ca.cer" .. -alias ca_serv -file "d:\_work\serv_der.cer" ... -alias client -file "d:\_work\clnt.cer" Certificate was added to keystore

По вводным: после импорта запрос к API из JMS возвращает:

400 Bad Request No required SSL certificate was sent

По вводным: в локальном хранилище cacerts уже есть три сертификата и закрытый ключ:

keytool.exe -list -keystore ./cacerts | findstr /V jdk | findstr /V finger ca_serv, 04.12.2025, trustedCertEntry, ca, 04.12.2025, trustedCertEntry, {...}, 04.12.2025, PrivateKeyEntry, clnt, 04.12.2025, trustedCertEntry,

По вводным: смущает, что после импорта pkcs12 - keytool стал постоянно выдавать варнинг.

Warning: The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore ./cacerts -destkeystore ./cacerts -deststoretype pkcs12". Keystore type: JKS Keystore provider: SUN

Сейчас ситуация такая: попытка выполнить совет и сконвертировать в PKCS12 привела вообще к ошибке:
По вводным: the trustAnchors parameter must be non-empty

Журнал JMS:

[25/12/05 12:14:04] ID=dev_ESBTest (severe) [] Failed delivery for (MessageId: ID-VM-TEST-51337-1764925865905-0-3 on ExchangeId: ID-VM-TEST-51337-1764925865905-0-4). Exhausted after delivery attempt: 1 caught: org.apache.camel.component.cxf.CxfOperationException: JAXRS operation failed invoking directsonicesb://Resource.testapi_v2_APIClaim.APIclaim?bindingStrategy=%23InvokeBindingStrategy.Resource.testapi_v2_APIClaim.APIclaim&headerFilterStrategy=%23InvokeHeaderFilterStrategy.Resource.testapi_v2_APIClaim.APIclaim&uriTemplate=%23URITemplate.Resource.testapi_v2_APIClaim.APIclaim with statusCode: 400org.apache.camel.component.cxf.CxfOperationException: JAXRS operation failed invoking directsonicesb://Resource.testapi_v2_APIClaim.APIclaim?bindingStrategy=%23InvokeBindingStrategy.Resource.testapi_v2_APIClaim.APIclaim&headerFilterStrategy=%23InvokeHeaderFilterStrategy.Resource.testapi_v2_APIClaim.APIclaim&uriTemplate=%23URITemplate.Resource.testapi_v2_APIClaim.APIclaim with statusCode: 400 at org.apache.camel.component.cxf.jaxrs.CxfRsProducer.populateCxfRsProducerException(CxfRsProducer.java:317) at org.apache.camel.component.cxf.jaxrs.CxfRsProducer.invokeHttpClient(CxfRsProducer.java:177) at org.apache.camel.component.cxf.jaxrs.CxfRsProducer.process(CxfRsProducer.java:87) ...

Подскажите, что может быть неверно выполнено?
Нужно понять: в каком направлении пробовать искать решение?

Updated:
По вводным: вопрос решился настройкой TLS в компоненте Apache CXF (см. Лог JMS:... at org.apache.camel.component.cxf....)
https://cxf.apache.org/docs/client-http-transport-...

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно