Loading

javax.net.ssl.SSLException 문제를 해결하는 방법: 치명적인 경고 수신됨: handshake_failure

게시 일자: Oct 16, 2024
솔루션

증상

TLS 컨텍스트를 사용하여 HTTP 요청자로 SSL 끝점을 소비하려고 시도하면 다음과 같은 오류가 표시됩니다. 

루트 예외 스택 트레이스:javax.net.ssl.SSLException: 치명적인 경고 수신됨: 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 디버그를 활성화하는 방법에 대한 자세한 정보를 확인할 수 있습니다. 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 }세션 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]압축 방법:  { 0 }

 

 

솔루션

소비하려는 원격 서비스가 같은 프로토콜 및 ClientHello 메시지에 나열된 암호 그룹 중 하나 이상을 지원하는지 검토합니다. 
다음 도구를 사용하여 작업을 수행할 수 있습니다. 

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

 

Knowledge 기사 번호

001123418

 
로드 중
Salesforce Help | Article