ข้อผิดพลาด: 14094410: กิจวัตร SSL: SSL3_READ_BYTES: การจับมือการแจ้งเตือน sslv3 ล้มเหลว (35)


9

เรามีเว็บไซต์ช็อปปิ้งออนไลน์ เมื่อฉันจะไปที่หน้าชำระเงินฉันได้รับข้อผิดพลาดเช่นนี้ "ข้อผิดพลาด: 14094410: กิจวัตร SSL: SSL3_READ_BYTES: การจับมือการแจ้งเตือน sslv3 ล้มเหลว (35)"

จากบันทึกข้อผิดพลาด apache ฉันสามารถเห็นความพยายามในการเชื่อมต่อกับ api.paypal.com นี่คือส่วนหนึ่งของบันทึกข้อผิดพลาด apache ของฉัน

* 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

เมื่อฉันพยายามเชื่อมต่อกับ api.paypal.com โดยใช้ curl ฉันได้รับข้อผิดพลาดเช่นนี้

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:

Googling สำหรับข้อมูล API PayPal ก็ปรากฏว่าคุณจะต้องขอใบรับรองไคลเอ็นต์สำหรับของ API พวกเขายังมี username / password "ลายเซ็น" ตัวเลือก แต่ตัวเลือกนี้ใช้เซิร์ฟเวอร์ที่แตกต่างกันอย่างสิ้นเชิง หากคุณมีสิ่งเหล่านี้การกำหนดค่าซอฟต์แวร์รถเข็นของคุณให้ใช้งานนั้นเป็นปัญหาที่เกิดขึ้นกับนักพัฒนารถเข็น หากคุณเป็นผู้พัฒนาและคุณมีใบรับรองให้ดูที่ --cert, --cert-type, --key และ --key-type flag curlเพื่อกำหนดค่าใบรับรองและส่วนโค้งคีย์ส่วนตัวที่ใช้


ขอบคุณสำหรับการตอบกลับ. ปัญหาได้รับการแก้ไขแล้ว ปัญหาคือหนึ่งในนักพัฒนาของเรากำหนดค่าจุดสิ้นสุด Paypal API เป็น api.paypal.com อย่างไม่ถูกต้อง ควรเป็น api-3t.paypal.com เพื่อให้ทำงานได้อย่างถูกต้อง
ArunS

1
โปรดทราบว่าคำตอบเหล่านี้ล้าสมัยแล้ว ไม่รองรับ SSLv3 เนื่องจากช่องโหว่ POODLE การใช้มันสามารถสร้างข้อผิดพลาดเช่นนี้ ดูStackOverflow นี้คำตอบ
tomwhipple

-1

ฉันพบคำถามเดียวกันนี้

เพราะฉันไม่ได้เปิดพอร์ต 443 ใน Centos

ดังนั้นคุณเช็คเอาต์พอร์ต 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.