这是我们的配置类的样子 -
public Class TestSSLConfiguration extends HttpClientConfiguration {
@Override
public SslConfiguration getSslConfiguration() {
SslConfiguration sslConfiguration = new SslConfiguration();
sslConfiguration.setEnabled(true);
SslConfiguration.KeyStoreConfiguration keyStoreConfiguration = new SslConfiguration.KeyStoreConfiguration();
keyStoreConfiguration.setType("PKCS12");
keyStoreConfiguration.setPath("file:src/test/resources/certificates/cert.p12");
keyStoreConfiguration.setPassword("pwd");
sslConfiguration.setKeyStore(keyStoreConfiguration);
return sslConfiguration;
}
}
我们在我们的 MicronautTest 中使用这个配置,声明式客户端如下 -
import io.micronaut.http.client.HttpClient;
@Inject
@Client(value = "/api", configuration=TestSSLConfiguration.class)
HttpClient httpClient;
我已确保证书文件存在于提供的位置。出现以下错误 -
原因:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径
在我们升级到 MN3 之前,这曾经没有任何问题。