Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

javax.net.ssl.SSLException:Received fatal alert: handshake_failure のトラブルシューティング方法

公開日: Oct 16, 2024
解決策

問題

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

https://docs.mulesoft.com/mule-runtime/latest/tls-configuration#optional-attributes-of-the-tls-context-element

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

 
読み込み中
Salesforce Help | Article