오류 : 14094410 : SSL 루틴 : SSL3_READ_BYTES : sslv3 경고 핸드 셰이크 실패 (35)


9

우리는 온라인 쇼핑 사이트가 있습니다. 결제 페이지를 방문하려고 할 때 "오류 : 14094410 : SSL 루틴 : SSL3_READ_BYTES : sslv3 경고 핸드 셰이크 실패 (35)"와 같은 오류가 발생합니다.

아파치 오류 로그에서 api.paypal.com에 연결하려는 시도를 볼 수 있습니다. 여기 내 아파치 오류 로그의 일부입니다

* About to connect() to api.paypal.com port 443 (#0)
*   Trying 66.211.168.123... * connected
* Connected to api.paypal.com (66.211.168.123) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
* Closing connection #0

curl을 사용하여 api.paypal.com에 연결하려고 할 때 이와 같은 오류가 발생합니다.

curl -iv https://api.paypal.com/
* About to connect() to api.paypal.com port 443 (#0)
*   Trying 66.211.168.91... connected
* Connected to api.paypal.com (66.211.168.91) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Request CERT (13):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS alert, Server hello (2):
* error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
* Closing connection #0
curl: (35) error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

답변:


3

openssl s_client이 메시지가 수신되는지 또는 전송되는지를 알려주기 때문에 여기에서 무슨 일이 일어나고 있는지 설명하는 더 나은 작업을 수행합니다. api.paypal.com이 특정 클라이언트 인증서를 요청하고 있는데 (이는 * SSLv3, TLS handshake, Request CERT (13)라인 컬이 인쇄 중입니다) 잘못된 인증서를 보내거나 연결하지 않아서 연결이 실패합니다.

SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
SSL_connect:SSLv3 read server hello A
SSL_connect:SSLv3 read server certificate A
SSL_connect:SSLv3 read server certificate request A
SSL_connect:SSLv3 read server done A
SSL_connect:SSLv3 write client certificate A
SSL_connect:SSLv3 write client key exchange A
SSL_connect:SSLv3 write change cipher spec A
SSL_connect:SSLv3 write finished A
SSL_connect:SSLv3 flush data
SSL3 alert read:fatal:handshake failure
SSL_connect:failed in SSLv3 read finished A
6016:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1086:SSL alert number 40
6016:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:188:

페이팔 API 정보를 검색 하면 API에 대한 클라이언트 인증서 를 요청해야합니다 . 또한 사용자 이름 / 암호 "서명"옵션이 있지만이 옵션 은 완전히 다른 서버를 사용합니다 . 이것들이 있다면, 카트 소프트웨어를 사용하도록 카트 소프트웨어를 구성하는 것이 카트 개발자에게 맡기는 문제입니다. 당신이 경우 입니다 개발자 및 인증서를 가지고있는 - 중요한 --cert, --cert 형, 및 --key 형 플래그 참조 curlCERT는 키와 개인 키 컬의 사용을 구성 할 수 있습니다.


답장을 보내 주셔서 감사합니다. 이 문제는 이제 해결되었습니다. 이 문제는 개발자 중 하나가 Paypal API 엔드 포인트를 api.paypal.com으로 잘못 구성한 것이 었습니다. 올바르게 작동하려면 api-3t.paypal.com이어야합니다.
ArunS

1
이 답변은 더 이상 사용되지 않습니다. POODLE 취약점으로 인해 SSLv3이 지원되지 않습니다. 그것을 사용하면 이와 같은 오류가 발생할 수 있습니다. 참조 이 StackOverflow의 응답을
tomwhipple

-1

나는이 같은 질문을 만난다.

Centos에서 443 포트를 열지 않기 때문입니다.

443 포트를 확인하십시오!

sudo losf -i tcp : 443

해결 방법 :

cd /etc/httpd/conf.d vim ssl.conf

첫 번째 줄에 두 줄을 추가하십시오.

LoadModule ssl_module modules/mod_ssl.so
Listen 443

당신은 그것을 시도 할 수 있습니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.