HTTP リクエスターで TLS コンテキストを使用して SSL エンドポイントをコンシュームしようとすると、次のようなエラーが表示されます。
Root Exception stack trace:javax.net.ssl.SSLException:Received fatal alert: handshake_failure at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1647) at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1615)
この種のエラーが表示される場合、SSL ハンドシェイクを実行しようとして何らかの問題が発生したことを示しています。通常、コンシュームしようとしているサービスが、クライアントが提案したプロトコルや暗号スイートをサポートしていないことが原因で発生します。
これは SSL デバッグを有効にすると確認できます。SSL デバッグを有効にする詳しい手順は、こちらの 「How to enable SSL debug logging in MuleSoft Products」(MuleSoft 製品で SSL デバッグログを有効にする方法) を参照してください。
SSL デバッグログで、クライアントが対応する暗号スイートを含む TLS バージョン (この例では TLSv1.2) を使用して ClientHello を送信しており、対応する暗号スイートを示す ServerHello を受信していないことがわかります。
*** ClientHello, TLSv1.2RandomCookie: GMT:1540703219 bytes = { 236, 187, 154, 87, 41, 72, 226, 59, 44, 178, 16, 175, 159, 193, 47, 58, 245, 244, 240, 145, 135, 108, 196, 71, 237, 58, 231, 0 }Session ID: {}Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA]Compression Methods: { 0 }
コンシュームしようとしているリモートサービスで、同じプロトコルおよび ClientHello メッセージにリストされている少なくとも 1 つの暗号スイートがサポートされていることを確認します。
これには以下のツールの一部を使用できます。
openssl を使用すると、該当するサーバーに接続してどの TLS バージョンをサポートしているかを確認できます。
openssl s_client -connect : -tls1_2
openssl s_client -connect : -tls1_1
openssl s_client -connect : -tls1
または、次のように cURL コマンドを使用できます。
curl -vvvv -k https://:
次のスクリプトで nmap ツールを使用して、サポートされているプロトコルと暗号スイートをリストアップすることもできます。
https://nmap.org/nsedoc/scripts/ssl-enum-ciphers.html
サービスでサポートされているプロトコルと暗号スイートを特定したら、TLS 設定から HTTP リクエスターでサポートされているプロトコルと暗号スイートを変更してサービスに接続できるようにします。
Mule 3 での TLS 設定の詳細は以下を参照してください。
https://docs.mulesoft.com/mule-runtime/3.9/tls-configuration#protocol-cipher-suite-behavior
Mule 4 での TLS 設定の詳細は以下を参照してください。
https://docs.mulesoft.com/mule-runtime/latest/tls-configuration#optional-attributes-of-the-tls-context-element
https://docs.mulesoft.com/mule-runtime/latest/tls-configuration#optional-specify-protocols-and-cipher-suites
https://docs.mulesoft.com/mule-runtime/latest/tls-configuration#example-adding-additional-cipher-suites-and-protocol-restrictions
001123418

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.