org.opensaml.common.SAMLRuntimeException:无法获得SP签名密钥

时间:2018-01-30 16:55:53

标签: spring spring-security saml

无法通过领域发现阶段。虽然样本代码适用于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)

和控制台消息如下:

  

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

     

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

     

检查无效的密钥库entityID /别名条目密码

使用entityBaseURL作为与客户共享的结束方网址。还尝试使用metadata.xml中显示的实体ID。

真正感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

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

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

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

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