为了账号安全,请及时绑定邮箱和手机立即绑定

在本地创建 spring 和 nodejs 应用程序之间的 SSL 连接

在本地创建 spring 和 nodejs 应用程序之间的 SSL 连接

缥缈止盈 2023-02-23 14:46:17
我有两个应用程序,一个是用 nodejs 编写的(在本例中是简单的模拟服务器)和 spring 应用程序(核心应用程序)。我想在这两者之间创建一个 SSL 连接。首先,我生成了一对密钥和证书,然后简单地设置一个 nodejs 以通过 SSL 工作(我使用了这个例子:设置 SSL - nodeJs)。我已经检查过,当我在浏览器中写入时https://localhost:3000它给了我一个“安全”连接(带有打开的挂锁 - 所以没关系)。接下来我使用设置 SSL - Spring在 spring 应用程序上进行配置。我从上一步生成的证书中获取了证书,并将其在密钥库中设置为 .p12 文件。在 spring 应用程序中,我将节点应用程序的 url 更改为 https。当我尝试从 spring 应用程序连接并从节点获取一些模拟数据时,我得到了这个堆栈跟踪:Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target我在堆栈中发现了一些东西,但是当我在特定目录中设置此证书然后重新启动我的应用程序时,结果是一样的。有没有人可能知道此配置中可能有什么问题以及如何解决它的一些建议?
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

我找到了这个问题的解决方案。我不知道为什么,但是当我创建一个内部带有证书的密钥库,然后在我的 spring 应用程序中使用它时,它无法在全局范围内找到带有证书的密钥库。我一直在寻找有关 openJDK11 的文档(因为我使用过它)并找到了一个指向启用无限强度管辖策略的链接并检查了我拥有 openJDK11 版本的文件。

在我的例子中,来自的那一行crypto.policy被评论了,不知道为什么。当我取消注释并设置它时,unlimited它又给我一个错误,但后来我找到了另一种解决方案。我发现,我需要将我的自签名证书添加到 cacerts 文件(如何将我的自签名证书添加到 cacerts)。在这两个操作之后,它就像魅力一样。


查看完整回答
反对 回复 2023-02-23
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信