首页 > 解决方案 > 客户端无法将 HTTPS 与 WireMock 对话:javax.net.ssl.SSLException: Unsupported or unrecognized SSL message

问题描述

我有以下模拟配置:

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

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

我按照本教程生成密钥库

我正在运行经过测试的 JAR,如下所示:

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

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

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

为什么?

还值得一提的是,客户端不应该存在 SSL 证书问题,因为它(不安全地)配置为信任所有证书。

标签: javasslhttpswiremock

解决方案


终于找到问题了。我会把它留给未来的读者:

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


推荐阅读