原则上,这是一个关键工具问题,与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证书。
为什么我会收到此错误,我该怎么办?
我似乎唯一留下的选择是:
答案 0 :(得分:1)
说实话,不知道SSO或IdP,但这里是:
尽我所知,这是因为tomcat不接受 SP的证书,是自签名的。
如果这确实是问题,您只需将该证书导入Tomcat的信任库即可。
相反,我正在尝试生成CA证书,并使用它来签名 证书
我不知道你在这里要做什么。它由谁签署?
默认情况下,cacerts具有受信任的所有CA的证书,例如威瑞信。
您在帖子中提到的导入命令也是尝试导入到idp.jks
而不是cacerts
答案 1 :(得分:1)
将apache放在运行IdP的Tomcat前面并使用它 “optional_no_ca”设置为能够使用自签名证书,
你不需要在tomcat面前使用apache,Shibboleth也不会说。
支付知名CA签署证书(不是真的 但是,适用于概念验证)
需要一个知名的CA,只是因为o信任链,如果你不想要,你将永远不需要付费。
尝试在没有加密的情况下首先进行通信,因为您正在进行概念验证。
错误是在进行导入时? 为什么不导入CA证书而不是仅导入特定的SP?