błąd: 14094410: Procedury SSL: SSL3_READ_BYTES: błąd uzgadniania alertu sslv3 (35)

9

Mamy stronę zakupów online. Kiedy idę do kasy, pojawia się komunikat o błędzie „błąd: 14094410: procedury SSL: SSL3_READ_BYTES: błąd uzgadniania alarmu sslv3 (35)”

Z dziennika błędów apache widzę niektóre próby połączenia z api.paypal.com. Oto część mojego dziennika błędów 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

Kiedy próbowałem połączyć się z api.paypal.com za pomocą curl, pojawia się taki błąd

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
ArunS
źródło

Odpowiedzi:

3

openssl s_clientlepiej wyjaśnia, co się tutaj dzieje, ponieważ daje informację, czy odbiera, czy wysyła te wiadomości. api.paypal.com żąda konkretnego certyfikatu klienta ( * SSLv3, TLS handshake, Request CERT (13)drukuje się zawinięcie linii), a Ty wysyłasz zły (lub nie) certyfikat, więc Twoje połączenie nie działa:

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:

Po przejrzeniu informacji o interfejsie paypal wydaje się, że musisz poprosić o certyfikat klienta dla interfejsu API . Mają też opcję podpisu pod nazwą użytkownika / hasła, ale ta opcja używa zupełnie innego serwera . Jeśli tak, to skonfigurowanie oprogramowania koszyka do korzystania z nich jest problemem, który należy poradzić sobie z twórcą koszyka. Jeśli jesteś twórcą i masz certyfikat, zobacz --cert, --cert typu, --key i --key typu flagi curl, aby skonfigurować cert i kluczy prywatnych zastosowań skręcania.

DerfK
źródło
Dziękuję za odpowiedź. Problem został już rozwiązany. Problem polegał na tym, że jeden z naszych programistów nieprawidłowo skonfigurował punkt końcowy interfejsu API Paypal jako api.paypal.com. Aby działało poprawnie, powinno to być api-3t.paypal.com.
ArunS
1
Pamiętaj, że te odpowiedzi są nieaktualne. SSLv3 nie jest obsługiwany z powodu podatności na POODLE. Korzystanie z niego może wygenerować taki błąd. Zobacz odpowiedź StackOverflow
tomwhipple,
-1

Odpowiadam na to samo pytanie.

Ponieważ nie otwieram portu 443 w Centos.

Więc sprawdzasz port 443!

sudo losf -i tcp: 443

Metoda rozwiązywania:

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

w pierwszym wierszu dodaj dwie linie:

LoadModule ssl_module modules/mod_ssl.so
Listen 443

Możesz tego spróbować!

Miłość
źródło