1

HTTPS / SSLを使用して、公開されたサービスでWSメソッドを呼び出すようにMule2.2でCXFトランスポートを構成する際に小さな問題が発生しました。プレーンHTTPを使用して同じメソッドを呼び出すと、正常に機能します。私はこの問題についてたくさん検索し、とりわけ次のリンクを見つけました:

http://www.mulesoft.org/documentation/display/MULE2CB/Using+HTTPS+with+CXF

これは役に立ちますが、まだ完全には理解していないことがいくつかあります。

  • CXFエンドポイントは次のように構成されます。つまり、cxf-namespaceにあります。cxf-namespaceは、リンクで説明されているようにを構成するためのhttps-namespaceと何らかの関係がありますか?

  • さらに紛らわしいのは、Muleのものが以前の開発者から引き継いだものであり、SSLをそのまま使用していると思われることですが、Mule構成ファイルでhttps:connector構成の痕跡を見つけることができません。リンクの情報から、少なくとも「サーバーキーストア」と「トラストストア」は必須であるという印象を受けました。

    <https:connector name="myHttpsConnector">
        <https:tls-key-store path="serverKeystore" keyPassword="mulepassword"
             storePassword="mulepassword"/>
        <https:tls-server path="trustStore" storePassword="mulepassword"/>
    </https:connector>
    

HTTPS対応のWSに接続しようとしたときにMuleログに表示されるのは以下のとおりであり、SSLキーに明確に関連していますが、すべてを適切に配置するための最後の部分がありません。この問題に関するヘルプやコメントは大いに評価されます。

/オラ

********************************************************************************
Message               : Failed to invoke lifecycle phase "initialise" on object:
HttpsConnector{this=a7769e, started=false, initialised=false,
name='connector.https.0', disposed=false, numberOfConcurrentTransactedReceivers=4,
createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[https],
serviceOverrides=null}
Type                  : org.mule.api.lifecycle.LifecycleException
Code                  : MULE_ERROR-70228
JavaDoc               : http://www.mulesource.org/docs/site/current2/apidocs/org/mule/api/lifecycle/LifecycleException.html
********************************************************************************
Exception stack is:
1. The Key password cannot be null (java.lang.IllegalArgumentException)
org.mule.api.security.tls.TlsConfiguration:290 (null)
2. Failed to invoke lifecycle phase "initialise" on object: 
HttpsConnector{this=a7769e, started=false, initialised=false, 
name='connector.https.0', disposed=false, numberOfConcurrentTransactedReceivers=4, 
createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[https], 
serviceOverrides=null} (org.mule.api.lifecycle.LifecycleException)
org.mule.lifecycle.DefaultLifecyclePhase:277 (http://www.mulesource.org/docs/site
/current2/apidocs/org/mule/api/lifecycle/LifecycleException.html)
********************************************************************************
Root Exception stack trace:
java.lang.IllegalArgumentException: The Key password cannot be null
    at
org.mule.api.security.tls.TlsConfiguration.assertNotNull(TlsConfiguration.java:290)
at org.mule.api.security.tls.TlsConfiguration.validate(TlsConfiguration.java:208)
...
..
4

1 に答える 1

1

Mule https:connector がない場合は、外部サービスが SSL 部分を実行していることを意味している可能性があります (JBoss サーバーなど)。私は自分でそれをした経験はありません。

ただし、すべてが Mule を介して行われる場合は、クライアント プロパティも設定する必要があります (言及したリンクで説明されているように)。

<https:tls-client path="clientKeystore" storePassword="mulepassword" />

そして、さまざまなキー ストアを要約します (混乱する可能性があります)。

  • clientKeyStoreには、クライアントのキーが含まれています
  • serverKeyStoreにはサーバーのキーが含まれています
  • trustStoreには、すべてのピアの公開鍵、つまり、サーバーに接続しているクライアントへの鍵、外部サーバーへの鍵 (接続しようとしている ws など) が含まれています。

しかし、表示されたエラー メッセージは、キー パスワードが欠落していることを示しています。キー ストアと https コネクタを適切に設定していれば、このようなことは発生しません。

于 2011-03-23T22:44:19.767 に答える