2016-12-30 34 views
0

SSOを有効にするために、いくつかのプロジェクトでopensaml 2.6.1とspring-security-saml2-core 1.0.1を使用しています。 暗号化と署名に自己署名入りの証明書を使用しています。私のサービスプロバイダがSAML応答を受信した場合SAMLの信頼できる証明書

、私は次のエラーを取得しています:

DEBUG [org.opensaml.xml.signature.SignatureValidator] Creating XMLSignature object 
DEBUG [org.opensaml.xml.signature.SignatureValidator] Validating signature with signature algorithm URI: http://www.w3.org/2001/04/xmldsig-more#rsa-sha512 
DEBUG [org.opensaml.xml.signature.SignatureValidator] Validation credential key algorithm 'RSA', key instance class 'sun.security.rsa.RSAPublicKeyImpl' 
DEBUG [org.opensaml.xml.signature.SignatureValidator] Signature validated with key from supplied credential 
DEBUG [org.opensaml.xml.signature.impl.BaseSignatureTrustEngine] Signature validation using candidate credential was successful 
DEBUG [org.opensaml.xml.signature.impl.BaseSignatureTrustEngine] Successfully verified signature using KeyInfo-derived credential 
DEBUG [org.opensaml.xml.signature.impl.BaseSignatureTrustEngine] Attempting to establish trust of KeyInfo-derived credential 
DEBUG [org.opensaml.xml.signature.impl.BaseSignatureTrustEngine] Failed to establish trust of KeyInfo-derived credential 
DEBUG [org.opensaml.xml.signature.impl.BaseSignatureTrustEngine] Failed to verify signature and/or establish trust using any KeyInfo-derived credentials 
DEBUG [org.opensaml.xml.signature.impl.ExplicitKeySignatureTrustEngine] Attempting to verify signature using trusted credentials 
DEBUG [org.opensaml.xml.signature.impl.ExplicitKeySignatureTrustEngine] Failed to verify signature using either KeyInfo-derived or directly trusted credentials 
DEBUG [org.springframework.security.saml.websso.WebSSOProfileConsumerImpl] Validation of authentication statement in assertion failed, skipping 
org.opensaml.xml.validation.ValidationException: Signature is not trusted or invalid 
    at org.springframework.security.saml.websso.AbstractProfileBase.verifySignature(AbstractProfileBase.java:272) 
    at org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.verifyAssertionSignature(WebSSOProfileConsumerImpl.java:419) 
    at org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.verifyAssertion(WebSSOProfileConsumerImpl.java:292) 
    at org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.processAuthenticationResponse(WebSSOProfileConsumerImpl.java:214) 
    at org.springframework.security.saml.SAMLAuthenticationProvider.authenticate(SAMLAuthenticationProvider.java:82) 
    at 

私は例外messageisから理解しているもの:

  • 署名検証が
  • 成功しています私の証明書を信頼する際に問題があります 私の訴えは訂正されていますか?

私は、次のコマンドを使用して(JVMのcacertsストア)私のキーストアに私の自己署名証明書をインポートしています

keytool -importcert -trustcacerts -file "myCcert.crt" -keystore "C:\Program Files\Java\jdk1.8.0_65\jre\lib\security\cacerts" -storepass changeit -alias test 

Dosen'tこのコマンドは、私のcertifをインポートし、Javaによって信頼されるようにマークを付けます?

もう1つのことは、Javaが自己署名入りの署名を信頼できるか、または証明書をCAが検証して検証をパスする必要があるかどうかです。

+0

はい。 Javaは自己署名証明書を信頼できます。 – anacron

+0

ありがとう、アナクロン この例外の原因は何ですか? – Zizou

+0

SSLを実装しようとしている場合は、キーストアが必要です。 'cacerts'はキーストアではなく、トラストストアです。他のSSLサイトにアクセスしたい場合はうまく動作します。しかし、サイトにSSLを設定する場合は、別のキーストアが必要になります。 – anacron

答えて

0

スプリングSAMLは、信頼確認にcacertsを使用せず、専用キーストア(サンプルアプリケーションのsamlKeystore.jks)を使用します。詳細については、Spring SAMLマニュアルの証明書管理に関する章をお読みください。

関連する問題