【问题标题】:org.opensaml.common.SAMLRuntimeException: Can't obtain SP signing keyorg.opensaml.common.SAMLRuntimeException:无法获取 SP 签名密钥
【发布时间】:2018-07-09 15:34:15
【问题描述】:

无法通过领域发现阶段。虽然示例代码适用于 IDP SSO 圈。使用我们公司的 Metadata.xml 更新我们的 securityContext.xml 时面临问题,导入 pfx 证书并添加到密钥库。

使用以下命令添加到密钥库:

keytool -importkeystore -srckeystore PFX_P12_FILE_NAME -srcstoretype pkcs12 -srcstorepass PFX_P12_FILE_PASS -srcalias SOURCE_ALIAS -destkeystore samlKeystore.jks -deststoretype jks -deststorepass nalle123 -destalias alias

PFB 异常跟踪:

org.opensaml.common.SAMLRuntimeException: Can't obtain SP signing key
    at org.springframework.security.saml.key.JKSKeyManager.getCredential(JKSKeyManager.java:193)
    at org.springframework.security.saml.metadata.MetadataGenerator.getServerKeyInfo(MetadataGenerator.java:205)
    at org.springframework.security.saml.metadata.MetadataGenerator.buildSPSSODescriptor(MetadataGenerator.java:329)
    at org.springframework.security.saml.metadata.MetadataGenerator.generateMetadata(MetadataGenerator.java:189)
    at org.springframework.security.saml.metadata.MetadataGeneratorFilter.processMetadataInitialization(MetadataGeneratorFilter.java:127)
    at org.springframework.security.saml.metadata.MetadataGeneratorFilter.doFilter(MetadataGeneratorFilter.java:86)

和控制台消息如下:

未配置默认元数据,使用默认值生成,请预先配置元数据以供生产使用

无法检索实体 ID(密钥库别名)的密钥库条目:apollo

检查无效的密钥库实体 ID/别名输入密码

使用entityBaseURL 作为与客户端共享的最终方 url。还尝试使用出现在 metadata.xml 中的实体 ID。

非常感谢任何帮助。

【问题讨论】:

  • 改进格式

标签: spring spring-security saml


【解决方案1】:

使用 keytool 命令使用自签名密钥库时,密钥对密码(为 keytool 选项 -keypass 指定)和密钥库文件密码必须相同。

我们可以使用以下命令创建自签名密钥库

keytool -genkeypair -alias springsaml -keypass <password> -keystore saml-keystore.jks

在终端收到“输入密钥库密码”消息时,输入相同的密码,该密码是为keytool选项“-keypass”提供的

【讨论】:

    猜你喜欢
    • 2015-08-23
    • 2013-12-25
    • 2022-01-07
    • 2020-02-12
    • 1970-01-01
    • 2010-11-22
    • 2017-09-29
    • 1970-01-01
    • 2020-07-19
    相关资源
    最近更新 更多