Мне не удалось заставить плагин Apache CXF-клиента grails работать с двухсторонней аутентификацией SSL. Веб-сервис, который я вызываю, предоставляет URL-адрес среды разработки, который не требует двухсторонней аутентификации, и все работает нормально. Однако URL-адрес тестовой среды, который они предоставляют, требует двухсторонней аутентификации, и я не смог заставить ее работать.Двусторонняя (взаимная) аутентификация SSL с клиентским плагином Apache CXF для grails
Приложение Grails работает в Tomcat на сервере Windows.
Я написал автономное тестовое приложение Java для тестирования двухсторонней аутентификации. Я называю это подходящим хранилищем ключей, доверительным магазином и т. Д., И он отлично работает. (Это чисто Java-приложение - нет CXF.) Я импортировал этот же Java-класс в приложение grails, работающее на Tomcat, и это также работает. Однако, как было сказано ранее, при вызове с использованием CXF он не работает.
Я включил -Djavax.net.debug = ssl в Tomcat и может видеть, что клиент не отправляет сертификат, когда сервер отправляет сообщение CertificateRequest. (При использовании класса Java клиент отвечает правильным сертификатом.)
Я пробовал несколько различных способов настройки параметров хранилища ключей и доверия. Я в настоящее время установки их с помощью ++ JvmOptions, когда я начинаю Tomcat:
++JvmOptions
-Xrs;
-Djavax.net.debug=ssl;
-Djavax.net.ssl.trustStore=C:\path\to\truststore.jks;
-Djavax.net.ssl.keyStore=C:\path\to\keystore.jks;
-Dhttps.cipherSuites=SSL_RSA_WITH_3DES_EDE_CBC_SHA;
-Djavax.net.ssl.keyStorePassword=password;
-Djavax.net.ssl.trustStorePassword=password
я в настоящее время с помощью CXF-клиента: 2.0.3, хотя я также попытался с CxF-клиента: 1.5.6.
я не сделал, но я не думаю, что это возможно с помощью плагина Grails. Может ли кто-нибудь подтвердить это? Кроме того, я понимаю, что он должен наследовать эти настройки с Java. – ScottF