客户端无法将 HTTPS 与 WireMock 通信:javax.net.ssl.SSLException:不支持或无法识别的 SSL 消息
client can't talk HTTPS to 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());
}
我按照this tutorial生成了密钥库
我运行测试的JAR如下:
ProcessBuilder pb = new ProcessBuilder("java","-jar", pathToJar,
"--Djavax.net.ssl.trustStore=" + keystore).start();
问题是客户端抛出以下异常:
javax.net.ssl.SSLException: Unsupported or unrecognized SSL message
为什么?
还值得一提的是,客户端不应该出现 SSL 证书问题,因为它(不安全地)配置为信任所有证书。
终于找到问题了。我会把它留给未来的读者:
访问端口时,您应该使用 httpsPort()
而不是 port()
。
我有以下模拟配置:
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: Unsupported or unrecognized SSL message
为什么?
还值得一提的是,客户端不应该出现 SSL 证书问题,因为它(不安全地)配置为信任所有证书。
终于找到问题了。我会把它留给未来的读者:
访问端口时,您应该使用 httpsPort()
而不是 port()
。