Добрый день.
Есть веб-сервис с 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
Подскажите, пожалуйста, что может быть неверно выполнено?
В каком направлении пробовать искать решение?