2017-03-23 4 views
0

WSO2 ESB 5.0サーバーを実行しています。通常のSOAPメッセージを署名付きのバージョンに変換し、これをエンドポイントに配信するサービスを作成する必要があります。 org.apache.ws.security.WSSecurityException:Rampart:非公開/鍵証明書でsoapメッセージが表示されない

によって引き起こさ:

私たちは、メッセージを取得している一般的な セキュリティエラー

(ユーザーwso2carbon用ませ証明書は 署名が見つかりませんでした)

なぜこのメッセージが表示されますか?私はこれの意味を理解していない。

更新:rampart設定のユーザーは、署名に使用するキーのエイリアスである必要があります。

<?xml version="1.0" encoding="UTF-8"?> 
    <proxy xmlns="http://ws.apache.org/ns/synapse" 
      name="__mke_siging_out" 
      startOnLoad="true" 
      statistics="disable" 
      trace="disable" 
      transports="https"> 
     <target> 
      <inSequence> 
      <send> 
       <endpoint> 
        <address uri="http://foo.bar.host/services/default/Echo/echo_client_ep"> 
         <enableSec policy="gov:/policies/__mke_sign_out.xml"/> 
        </address> 
       </endpoint> 
      </send> 
      </inSequence> 
      <outSequence> 
      <header xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" 
        action="remove" 
        name="wsse:Security" 
        scope="default"/> 
      <send/> 
      </outSequence> 
      <faultSequence/> 
     </target> 
     <description/> 
    </proxy> 

城壁の設定がプライベート/パブ証明書がある、JKSキーストアを指し、次のとおりです。とパスワードハンドラは、シナプス(WSO2 ESB)サービスがある別名キー

のパスワードを返す必要がありますパスワードによってロードされ、保護された:

<?xml version="1.0" encoding="UTF-8"?> 
<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="SigOnly"> 
    <wsp:ExactlyOne> 
     <wsp:All> 
      <sp:AsymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> 
       <wsp:Policy> 
        <sp:InitiatorToken> 
         <wsp:Policy> 
          <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient"> 
           <wsp:Policy> 
            <sp:RequireThumbprintReference /> 
            <sp:WssX509V3Token10 /> 
           </wsp:Policy> 
          </sp:X509Token> 
         </wsp:Policy> 
        </sp:InitiatorToken> 
        <sp:RecipientToken> 
         <wsp:Policy> 
          <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never"> 
           <wsp:Policy> 
            <sp:RequireThumbprintReference /> 
            <sp:WssX509V3Token10 /> 
           </wsp:Policy> 
          </sp:X509Token> 
         </wsp:Policy> 
        </sp:RecipientToken> 
        <sp:AlgorithmSuite> 
         <wsp:Policy> 
          <sp:Basic256 /> 
         </wsp:Policy> 
        </sp:AlgorithmSuite> 
        <sp:Layout> 
         <wsp:Policy> 
          <sp:Strict /> 
         </wsp:Policy> 
        </sp:Layout> 
        <sp:IncludeTimestamp /> 
        <sp:OnlySignEntireHeadersAndBody /> 
       </wsp:Policy> 
      </sp:AsymmetricBinding> 
      <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> 
       <sp:Policy> 
        <sp:MustSupportRefKeyIdentifier /> 
        <sp:MustSupportRefIssuerSerial /> 
       </sp:Policy> 
      </sp:Wss10> 
      <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> 
       <sp:Body /> 
      </sp:SignedParts> 
     </wsp:All> 
    </wsp:ExactlyOne> 
    <rampart:RampartConfig xmlns:rampart="http://ws.apache.org/rampart/policy"> 
     <rampart:user>wso2carbon</rampart:user> 
     <rampart:passwordCallbackClass>nl.rsg.it.igw.passwordcallback.Handler</rampart:passwordCallbackClass> 
     <rampart:encryptionUser>useReqSigCert</rampart:encryptionUser> 
     <rampart:timestampPrecisionInMilliseconds>true</rampart:timestampPrecisionInMilliseconds> 
     <rampart:timestampTTL>300</rampart:timestampTTL> 
     <rampart:timestampMaxSkew>300</rampart:timestampMaxSkew> 
     <rampart:timestampStrict>false</rampart:timestampStrict> 
     <rampart:tokenStoreClass>org.wso2.carbon.security.util.SecurityTokenStore</rampart:tokenStoreClass> 
     <rampart:nonceLifeTime>300</rampart:nonceLifeTime> 
     <rampart:encryptionCrypto> 
      <rampart:crypto provider="org.wso2.carbon.security.util.ServerCrypto" cryptoKey="org.wso2.carbon.security.crypto.privatestore"> 
       <rampart:property name="org.wso2.carbon.security.crypto.alias">myAlias</rampart:property> 
       <rampart:property name="org.wso2.carbon.security.crypto.privatestore">myPrivate.jks</rampart:property> 
       <rampart:property name="org.wso2.stratos.tenant.id">-1234</rampart:property> 
       <rampart:property name="org.wso2.carbon.security.crypto.truststores">myPrivate.jks</rampart:property> 
      </rampart:crypto> 
     </rampart:encryptionCrypto> 
     <rampart:signatureCrypto> 
      <rampart:crypto provider="org.wso2.carbon.security.util.ServerCrypto" cryptoKey="org.wso2.carbon.security.crypto.privatestore"> 
       <rampart:property name="org.wso2.carbon.security.crypto.alias">myAlias</rampart:property> 
       <rampart:property name="org.wso2.carbon.security.crypto.privatestore">myPrivate.jks</rampart:property> 
       <rampart:property name="org.wso2.stratos.tenant.id">-1234</rampart:property> 
       <rampart:property name="org.wso2.carbon.security.crypto.truststores">myPrivate.jks</rampart:property> 
      </rampart:crypto> 
     </rampart:signatureCrypto> 
    </rampart:RampartConfig> 
</wsp:Policy> 

答えて

0

私は城壁の設定では、ユーザーは、あなたが署名するのに使用するキーの別名であることを、考え出しました。そして、パスワードハンドラはエイリアスキーのパスワードを返さなければなりません。

関連する問題