当前位置: 首页 > 知识库问答 >
问题:

Spring Security SAML IdP元数据证书和签名

谢英光
2023-03-14

我看过很多问题,包括 https://stackoverflow.com/a/25384924/1317559。我有IdP元数据和证书,但似乎无法获得Spring,所以看到它。

  • 将证书添加到密钥库:keytool-importcert-alias-adfssigning-keystore-samlKeystore。jks-文件证书。crt
  • 元数据中有多个证书(2个不同的证书)和一个SignatureValue
  • 我尝试使用相同的keytool命令添加签名值,但它不是证书
  • 我还尝试添加在元数据中找到的2个证书

我启用了调试日志,这是我得到的结果:

    < li >使用KeyInfo派生的凭据成功验证了签名 < li >尝试建立对KeyInfo派生凭据的信任 < li >提供的可信名称为null或为空,跳过名称评估 < li >正在尝试对不受信任的凭据进行PKIX路径验证:[subjectName='O=novell,OU=accessManager,CN=test-signing'] < li >不可信凭据的PKIX路径构造失败:[subjectName='O=novell,OU=accessManager,CN=test-signing']:找不到请求目标的有效证书路径 < li >无法通过签名凭据的PKIX验证建立签名信任 < li >无法建立对KeyInfo派生凭据的信任 < li >无法使用任何KeyInfo派生的凭据验证签名和/或建立信任关系 < li >签名的PKIX验证失败,无法解析有效和可信的签名密钥 < li >元数据条目http://idp.ppd.com/nidp/saml2/metadata的签名信任建立失败 < li >从http://idp.ppd.com/nidp/saml2/metadata org . open SAML . SAML 2 . metadata . provider . filter过滤元数据时出错异常:org . open SAML . SAML 2 . metadata . provider . signaturevalidationfilter . verify Signature(signaturevalidationfilter . Java:312)处的元数据条目的签名信任建立失败

共有3个答案

糜淇
2023-03-14

此问题已修复。事实上有很多问题。我使用的是Spring SAML示例应用程序:

  • 需要将公共证书(签名后的第一个证书,在 idp 元数据中)添加到 samlKeystore.jks 下 的其他源,安全性。
  • 密码为 nalle123 。
  • 不要在 securityContext.xml 文件中放置任何内容。
顾炎彬
2023-03-14

另外值得注意的是:不要更改签名文件-当我重新格式化ADFS生成的一行时发生在我身上。显然更改了文件的签名。

曹德明
2023-03-14

Spring SAML手册在第7.2.4章中描述了元数据信任验证。一种选择是禁用信任检查,或手动从元数据中删除签名XML。正如您发现的那样,要导入samlKeystore.jks的证书是用于生成元数据签名的证书,而不是特定SP或IDP实体的签名/加密证书。

 类似资料:
  • 我检查了这个关于正确签名数据的问题,但它没有响应我的SCEP服务器的需求。我使用的代码来自EJBCA,但似乎没有向PKCS7签名数据添加证书。 当我使用工具解析签名数据时,我看到“证书”字段是“空的”。此外,当我尝试使用,我一无所获。 以下是我如何用Bouncy Castle签署我的数据(代码很多,但足以重现问题):

  • 我正在通过PKI开发身份验证。我是通过PKI认证用户的新手,所以在网上阅读后,我想出了这个解决方案。用户将创建公钥和私钥。为了验证公钥,用户将申请数字证书。数字证书将具有公钥、用户的元数据和证书颁发机构的数字签名。为了证明没有数据被篡改,用户将使用数字签名,这将是证书与用户私钥的哈希。用户将向服务器发送数字证书、数字签名和数据。 作为响应,服务器将验证数字证书并获取公钥以验证数字签名,验证后,服务

  • 因为存在安全隐患,如果你能辅助签名过程,最好避免使用自动签名。 在一般情况下,如果你想自动加入大量的客户端,最好在 Puppetmaster 上预先生成证书,然后将其作为构建过程的一部分推送给客户端。 你可以使用 puppet cert --generate <hostname> 命令生成预签名证书(pre-signed certificate)。 操作步骤 使用如下命令为 client1.exa

  • 我的手被https、ssl、PKI之类的东西弄得脏兮兮的。对于自签名证书,有一点我不太理解。假设我想创建一个自签名证书,并在我们想要建立安全连接时将其发送给我的朋友。 所以步骤是: 创建一个私钥。 创建一个公钥。 用我的公钥在证书上签名。 因此,当我的朋友得到我的证书时,他必须验证他得到的证书是我的,他需要解密数字签名。但为了解密和验证他必须拥有我的私钥。所以,我有点困惑。

  • 我最近升级了Inteliij IDEA 2019.2,如果我尝试从IDE中提取Git,我会发现以下错误:无法访问'https://github.xxx.com/app-Hello-USD/DGS.git/“:SSL证书问题:证书链中的自签名证书。 有人能帮我什么选项,我必须启用。 谢谢

  • 问题内容: 当尝试使用其PHP库通过Twilio发送消息时,我正在为这个错误而苦苦挣扎: 我在Windows 7上使用了wamp。 我当然找到了所有其他有关证书错误的信息。据我所知,通常更新或添加文件即可解决该问题。但是,即使这样做,我仍然遇到相同的错误。 就像这里所做的健全性检查一样,这正是我所做的: 从此处下载了最新的证书:http : //curl.haxx.se/ca/cacert.pem