0

我正在运行一个独立的 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 通信但没有成功之前,我已经添加了调用代码。

4

1 回答 1

0

由于您已经在密钥库上设置了密码,因此您需要通过--keystore-password参数将其提供给 WireMock。

于 2020-02-19T12:15:01.527 回答