Я настраиваю сервер Tomcat, который связывается с внешней системой через веб-службы SOAP (для этого я использую заглушки внешней системы и библиотеку Apache Axis2).
Внешняя система защищена аутентификацией клиента / сервера ssl. Система предоставляет мне файл хранилища ключей в формате .pfx, который содержит два сертификата.
Вещи, которые я пробовал:
Я извлек эти два сертификата и добавил в свое хранилище ключей. Я добавил ниже запись в моем tomcat/bin/catalina.bat
файле
set JAVA_OPTS = %JAVA_OPTS% -Djavax.net.ssl.trustStore=/pathtomykeystore/cacerts -Djavax.net.ssl.keyStore=/pathtomykeystore/cacerts -Djavax.net.ssl.keyStorePassword=changeit -Djavax.net.ssl.trustStorePassword=changeit
При указанной выше конфигурации мой запрос не выполняется, поскольку в запросе не найден заголовок HTTP сертификата клиента X.509.
Я включил логи ssl, затем обнаружил, что serverHelloDone напечатан, и после этого он говорит
"Не найдено подходящего сертификата клиента - продолжение без
аутентификация клиента "
То же самое я попробовал из SOAPUI Tool, где я напрямую настраиваю файл .pfx как хранилище ключей, и там он работает нормально
Разница между журналами Tomcat и SOPAUI
SOAPUI может успешно конкурировать с клиентской аутентификацией, где tomcat нет.
также ниже строки отсутствуют в логах tomcat ssl
keystore is:
keystoreType is: jks
keystore provider is
Update1:
Я удаляю конфигурацию хранилища ключей из SOAPUI-> представление проекта-> Конфигурация безопасности WS -> хранилище ключей (это рабочая конфигурация) и добавляю вышеупомянутые записи JAVA_OPTS в файл soapui.bat, и теперь SOAPUI также выдает такую же ошибку.
Любой помогает разобраться, как мыльный интерфейс выбирает и отправляет сертификаты из хранилища ключей, настроенного в представлении проекта-> хранилище ключей