问题描述
我具有以下模拟配置:
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()
。