gpt4 book ai didi

ssl - Spring Boot 调用 HTTPS 端点

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:44 41 4
gpt4 key购买 nike

我创建了一个 Spring Boot 应用程序,我将其作为穷人的守护进程运行,以在另一个 tomcat 实例上调用另一个 Java 服务。连接到其他 Java 服务时出现 SSL 错误,但如果我使用相同的 URL 和 header 通过 SoapUi(或 Postman)之类的东西访问其他服务,我会得到 OK 响应。所以一定是我的 Spring Boot 配置有问题。

我为 Spring Boot 和 SoapUI 使用相同的 JKS。我已经尝试在 application.properties 中使用证书,并使用 -Djavax.net.ssl.keyStore 在命令行上指定它以及相关的密码参数。

当我在没有 SSL 的情况下在本地运行其他服务时,我可以通过我的 Spring Boot 应用程序正常连接。

我得到的 SSL 错误是:sun.security.validator.ValidatorException: Netscape cert type does not permit use for SSL server

我能想到的最好的办法是 SoapUI(或 Postman)将自己标识为客户端应用程序,而我的 Spring Boot 将自己标识为服务器?所以我想我在问如何让 Spring Boot 将自己标识为客户端,但我仍然不确定我是否理解 SSL 错误。

最佳答案

你有很多问题。首先,soapui 在连接时不会对服务器 SSL 证书进行验证,默认情况下 java 不会。但是,您可以将 Java 客户端配置为也忽略服务器证书验证。

如何忽略取决于您使用的客户端,apache httpclient 是最常见的客户端,您可以在 in this thread 上找到详细信息。 .

现在,你真的不应该那样做。相反,您应该有一个信任库,其中包含将验证服务器证书的证书。在那种情况下,您会对 truststore 配置感兴趣,而不是 keystore - 当您向其他方表明身份时,keystore 是另一种方式。您需要将根 CA 和中间证书导入您的信任库,然后在您的配置中指向它。

关于ssl - Spring Boot 调用 HTTPS 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37487984/

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