java使用SpringWeb客户端命中https rest服务
我从客户端获得了两个.cer
文件,现在我的目标是使用https而不是使用SpringWebClient的http访问客户端api。因为我是SpringWebClient的新手,不知道该做什么
我两者都进口了。在keystore中使用以下命令
keytool -import -file "C:\Users\ankur\Download\Entrust_Root_Certification_Authority-G2.cer" -keystore "C:\Program Files\Java\jre1.8.0_40\lib\security\cacerts" -storepass "changeit"
keytool -import -file "C:\Users\ankur\Download\certificate\Entrust_Certification_Authority-L1K.cer" -keystore "C:\Program Files\Java\jre1.8.0_40\lib\security\cacerts" -storepass "changeit
我在下面编写了代码,以便从webclient以编程方式访问api
@Bean
public WebClient createWebClient() throws SSLException {
SslContext sslContext = SslContextBuilder
.forClient()
.trustManager(InsecureTrustManagerFactory.INSTANCE)
.build();
HttpClient httpClient = HttpClient
.create()
.secure(sslContextSpec -> sslContextSpec.sslContext(sslContext));
ClientHttpConnector connector = new ReactorClientHttpConnector(httpClient);
return WebClient.builder()
.clientConnector(connector).build();
}
application.yml
rest:
endpoint:https://someexample.com/xyz
我不知道该怎么办。cer文件存储这些文件的位置。cer文件我们需要在spring boot的资源文件夹中包含任何示例或链接吗?谢谢
# 1 楼答案
下面是一种可以将ssl证书配置为
webclient
的方法
步骤1:将所需证书复制到
resources
文件夹让我们以
config/Entrust_Root_Certification_Authority-G2.cer
为例第2步:创建一个属性,在您的一个配置类中配置证书的位置,如下所示
步骤3:在创建^{时加载这些证书
注意:上面提到的我使用的
pem
文件工作正常,请尝试一下,如果需要,可以将cer
转换为pem
文件,sslshopper将非常有助于验证和转换ssl证书谢谢