gpt4 book ai didi

java - 使用 Spring Web Client 命中 https Rest 服务

转载 作者:行者123 更新时间:2023-12-01 17:17:21 25 4
gpt4 key购买 nike

我从客户端获得了两个 .cer 文件,现在我的目标是使用 https 而不是使用 spring webclient 的 http 来访问客户端 api。因为我是 spring webclient 的新手,所以不知道该怎么做

我已使用以下命令将 .cer 导入到 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 的资源文件夹中包含任何示例或链接,谢谢

最佳答案


下面是您可以将 ssl 证书配置到 webclient
的方法之一
第 1 步: 将所需的证书复制到您的 resources 文件夹
我们以 config/Entrust_Root_Certification_Authority-G2.cer 为例

第 2 步: 创建一个属性来在配置类之一中配置证书的位置,如下所示

  @Value("${entrust.ssl.cert.path:config/Entrust_Root_Certification_Authority-G2.cer}")
private String entrustSslCertFilePath;

第 3 步: 在创建 SslContext 时加载这些证书

SslContext sslContext = SslContextBuilder.forClient()
.trustManager(new ClassPathResource(entrustSslCertFilePath).getInputStream())
.build();

注意:上面提到的我已经使用了 pem 文件,该文件工作正常,请尝试一下,如果需要,请随时将 cer 转换为 pem > 文件和 sslshopper对于验证和转换 ssl 证书非常有帮助

谢谢

关于java - 使用 Spring Web Client 命中 https Rest 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61357365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com