为什么在 Spring Saml 中忽略了 cacerts?

Why is cacerts ignored in Spring Saml?

我已经基于此使用 FilesystemMetadataProvider 实现了一个实现:https://github.com/vdenotaris/spring-boot-security-saml-sample

为了使 SSL 握手适用于工件绑定,我必须 put/trust keyManager 使用的 java 密钥库中 IDP 的 CA 证书。

我宁愿在 jre 上使用 cacerts 以防 IDP 更改 CA,但我无法找到任何 属性 进行设置,以便 Spring SAML 在其中查看反而。

这个答案也表明 cacert 被完全忽略了:

为什么在 Spring SAML 中忽略 cacert?这对我来说似乎是一个不足。

我已经检查过 IDP 的 CA 在我的 jre 的 cacert 文件中。如果我从配置中删除与 TLS/socket 工厂相关的 bean,它仍然会失败。

您的自定义 certificate/JDK 默认证书必须将 IDP 证书作为信任导入。 您在 JKS 管理器中使用的自定义证书必须至少有一个私钥。 请输入您对 JDK_PATH/jre/lib/securitycacerts 的信任并尝试命令 wget <your_idp_descriptor_url>

是的,cacerts 被忽略了。 Spring SAML 使用自定义实现来处理信任,目的是提供对系统安全性的更多控制。您总是可以很容易地将所有证书从 cacerts 复制到 samlKeystore。