我正在运行一个独立的 Wiremock 实例,用于在 JUnit 测试中进行模拟。这适用于 http 并且如果我使用带有 switch 的wiremock自签名证书--https-port 8443
。但是,如果我指定--https-keystore server_keystore.jks
,任何与 Wiremock 通信的尝试都会WireMock.reset();
抛出javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake
. 在浏览器中连接到管理页面https://localhost:9093/__admin/
会显示有关连接被关闭的类似错误。
密钥库生成如下;
keytool -genkey -keyalg RSA -keysize 2048 -alias server -keypass secret -storepass secret -keystore server_keystore.jks
如果我为 Wiremock 中的所有流量启用日志记录,我会看到;
Problem decoding network traffic
java.nio.charset.MalformedInputException: Input length = 1
System.setProperty("javax.net.ssl.trustStore", "server_keystore.jks");
在尝试与 Wiremock 通信但没有成功之前,我已经添加了调用代码。