【发布时间】:2020-03-20 16:52:20
【问题描述】:
在单元测试中使用 Hoverfly-java 模拟 web 服务,并使用 HttpClient 作为 web 客户端,发现使用 useSystemProperties() 可以正确传播 hoverfly 代理设置但是我仍然有 TLS 错误:未知证书,我必须手动添加证书到密钥库使用
wget https://raw.githubusercontent.com/SpectoLabs/hoverfly/master/core/cert.pem
sudo $JAVA_HOME/bin/keytool -import -alias hoverfly -keystore $JAVA_HOME/jre/lib/security/cacerts -file cert.pem
我需要在没有上述两个命令的情况下添加 Hoverfly SSL 上下文,我已经尝试过:
CloseableHttpClient httpClient = httpClientBuilder.useSystemProperties().setSSLContext(SomeTestClass.hoverflyRule.getSslConfigurer().getSslContext()).build();
但仍有 TLS 错误,有什么想法吗?
我知道可以使用ProcessBuilder 从 java 代码中运行以上两个命令,但这会带来安全问题,因为它需要 sudo 访问权限和不需要的漏洞(这也不起作用)。
【问题讨论】:
标签: java ssl mocking keystore hoverfly