如何从java验证SSL?

如何从java验证SSL?,java,ssl,openssl,ssl-certificate,keystore,Java,Ssl,Openssl,Ssl Certificate,Keystore,我需要从java调用soap web服务,所以我使用“.p12”文件进行身份验证。我在soap ui中使用相同的文件,它工作正常,但在java中,它给出了SSL错误。。如何使用来自java的ssl链接p12文件进行身份验证 public static void setUp() { System.setProperty("javax.net.ssl.keyStore", "ex.p12"); System.setProperty("javax.net.ssl.ke

我需要从java调用soap web服务,所以我使用“.p12”文件进行身份验证。我在soap ui中使用相同的文件,它工作正常,但在java中,它给出了SSL错误。。如何使用来自java的ssl链接p12文件进行身份验证

 public static void setUp() {
        System.setProperty("javax.net.ssl.keyStore", "ex.p12");
        System.setProperty("javax.net.ssl.keyStorePassword", "password");
    }   

   private static void initSSLFactories() {
        final String KEYSTOREPATH = "ex.p12";
        final char[] KEYSTOREPASS = "ff".toCharArray();
        final char[] KEYPASS = "ff".toCharArray();
//ssl config
        try (InputStream storeStream = FirstTest.class.getResourceAsStream(KEYSTOREPATH)) {
            setSSLFactories(storeStream, "PKCS12", KEYSTOREPASS, KEYPASS);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void setSSLFactories(InputStream keyStream, String keystoreType, char[] keyStorePassword, char[] keyPassword) throws Exception
    {
        KeyStore keyStore = KeyStore.getInstance(keystoreType);

        keyStore.load(keyStream, keyStorePassword);

        KeyManagerFactory keyFactory =
                KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());

        keyFactory.init(keyStore, keyPassword);

        KeyManager[] keyManagers = keyFactory.getKeyManagers();

        SSLContext sslContext = SSLContext.getInstance("SSL");
        sslContext.init(keyManagers, null, null);
        SSLContext.setDefault(sslContext);
    }

您可以创建类似以下内容的客户端:

    public Client getClient() {

        SslConfigurator sslConfig = SslConfigurator
                .newInstance()
                .trustStoreFile(TRUST_STORE_FILE_PATH) //The key-store file where the certificate is saved.
                .trustStorePassword(TRUST_STORE_PASSWORD_PATH);//password of the key-store file.

        SSLContext sslContext = sslConfig.createSSLContext();

        Client client = ClientBuilder.newBuilder().sslContext(sslContext).build();

        return client;
    }

请将准确的错误消息添加到您的问题java.security.invalidalgorithParameterException:trustAnchors参数必须是的非空可能重复项