客户端无法将HTTPS与WireMock对话:javax.net.ssl.SSLException:不支持或无法识别的SSL消息

问题描述

我具有以下模拟配置:

 public MockedServer() {
        super(new wiremockConfiguration()
                .httpsPort(8443)
                .keystorePath("identity.jks")
                .keystorePassword("password")
        );

        System.out.println(this.getoptions().httpsSettings());
    }

我跟随this tutorial生成了密钥库

我正在按如下方式运行经过测试的JAR:

    ProcessBuilder pb = new ProcessBuilder("java","-jar",pathToJar,"--Djavax.net.ssl.trustStore=" + keystore).start();

问题在于客户端抛出以下异常:

javax.net.ssl.SSLException:不支持或无法识别的SSL消息

为什么?

值得一提的是,客户端(不安全地)配置为信任所有证书,因此不应从客户端发出SSL证书。

解决方法

终于找到了问题。我将其留给以后的读者使用:

访问端口时,应使用httpsPort()而不是port()