【发布时间】:2025-07-01 07:40:02
【问题描述】:
原则上,这是一个 keytool 问题,与 Shibboleth 无关,但了解我想要到达的位置可能会有所帮助(如果Shibboleth 的东西对你没有任何意义):
我正在尝试设置 Shibboleth SSO 配置。 IdP 已经建立,我已经建立了一个 SP 来与它交谈。到目前为止(经过多次黑客攻击),非常好 - SP(链接到 apache 反向代理)拦截了对安全资源的调用并正确重定向到 IdP,它显示了一个登录页面。登录后,IdP 回复给 SP 一个令牌。
然后,SP 应该联系 IdP 以将令牌转换为对登录者有效的属性,但这里 IdP 抱怨消息不符合安全要求。
据我所知,这是因为 tomcat 不接受 SP 的证书,该证书是自签名的。
相反,我正在尝试生成 CA 证书,并使用它来签署证书。我已将 CA 证书添加到 $JAVA_HOME/jre/lib/security/cacerts,因此 keytool 应该信任它,但是当我尝试将签名的 SP 证书导入密钥库时,我收到错误:
keytool 错误:java.security.SignatureException:签名不匹配。
我使用的导入命令是:
keytool -import -v -alias sp_signed_cert -keystore idp.jks -trustcacerts -file server.crt
其中 server.crt 是签名的 SP 证书。
为什么会出现此错误,我该怎么办?
我似乎剩下的唯一选择是:
- 将 apache 放在运行 IdP 的 Tomcat 前面,并使用其“optional_no_ca”设置来使用自签名证书,
- 花钱请知名 CA 签署证书(不过,这并不适合概念验证)
【问题讨论】:
-
目前看来,我们的技术支持可以为我提供 GoDaddy 签名的证书。
标签: tomcat ssl-certificate keytool