【问题标题】:SSLException: Received fatal alert: certificate_unknowSSLException:收到致命警报:certificate_unknow
【发布时间】:2026-01-21 05:25:01
【问题描述】:

我有一个 Spring Boot 后端项目。我想使用我的 ssl 证书。

这是我的 application.properties 文件。

我使用 mycert.cert 和 mycert.key 创建了 robots.p12。此外,我使用 keytool 在 cacerts 中添加了 mycert.cert。

当应用程序发送请求后端时,我收到了这个错误。我不明白这个配置哪里错了。

【问题讨论】:

  • 应用程序是否信任您的证书?您是否已将其添加到它的信任锚存储中?
  • 我使用了“信任锚 mycert.cert” 你能描述我如何在信任锚存储中添加我的证书吗?
  • 恐怕我做不到 - 您需要阅读应用程序手册。

标签: java spring-boot ssl ssl-certificate


【解决方案1】:

当自签名证书或使用自签名 CA(证书颁发机构)签署服务器证书时,每次您通过另一个应用程序(无论是您自己的还是浏览器)执行请求时,您都必须修改您的应用(或浏览器),以便它信任在自己和服务器之间建立的连接。

浏览器有自己的信任存储(也称为密钥存储),它们保存受信任的证书链。但是,您的证书并未由任何这些受信任的证书签名。

我的做法是:

  1. 创建 CA(自签名)
  2. 使用此 CA 签署服务器证书
  3. 将 CA 添加到应用程序的信任存储区,以便在执行 TLS 握手时,将针对此信任存储区执行服务器证书的验证,因此结果有效。

【讨论】: