Я использую веб-сервис, который использует сертификат SSL, они предоставили сертификат PKCS12. Сгенерированный JKS с использованием keytool, сертификат работает нормально в SOAPUI.
Мой проект использует Java 8, но когда я пытаюсь вызвать службу с использованием JKS, он показывает com.sun.xml.internal.ws.fault.ServerSOAPFaultException: клиент получил ошибку SOAP от сервера: отклонено политикой.
Пробовал то же самое с Java 7, он работает нормально и получает ответ от сервиса. Ниже приведен код
SSLContext sc = SSLContext.getInstance("TLSv1.2");
KeyManagerFactory kmf =KeyManagerFactory.getInstance( KeyManagerFactory.getDefaultAlgorithm() );
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(new FileInputStream ("MYCLIENTCERT.JKS"), "keystorepassword".toCharArray() );
kmf.init( ks, "sourcepassword".toCharArray() );
sc.init( kmf.getKeyManagers(), null, null );
((BindingProvider) bp).getRequestContext().put("com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory",sc.getSocketFactory() );
PKCS12, заданный непосредственно в Java 7, который также работает нормально, не в Java8 (jdk1.8.0_131)
KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(new FileInputStream ("filename.p12"), "sourcepassword".toCharArray() );
kmf.init( ks, "sourcepassword".toCharArray() );
Пробовал так много вариантов, но, кажется, ничего не работает. Любая помощь будет оценена.