erro: 14094410: rotinas SSL: SSL3_READ_BYTES: falha do handshake de alerta sslv3 (35)

9

Temos site de compras online. Quando vou à página de check-out, estou recebendo um erro como este "error: 14094410: rotinas SSL: SSL3_READ_BYTES: falha de handshake de alerta sslv3 (35)"

No log de erros do apache, posso ver algumas tentativas de conexão ao api.paypal.com. Aqui está a parte do meu log de erro do 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

Quando tentei me conectar ao api.paypal.com usando curl, estou recebendo um erro como este

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
fonte

Respostas:

3

openssl s_clientfaz um trabalho melhor de explicar o que está acontecendo aqui, pois fornece se está recebendo ou enviando essas mensagens. api.paypal.com está solicitando um certificado de cliente específico (esta é a * SSLv3, TLS handshake, Request CERT (13)impressão de ondulação da linha) e você está enviando o certificado errado (ou nenhum), portanto, sua conexão falha:

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:

Pesquisando informações sobre a API do paypal, parece que você precisará solicitar um certificado de cliente para a API . Eles também têm uma opção de "assinatura" de nome de usuário / senha, mas essa opção usa um servidor completamente diferente . Se você os possui, configurar o software do carrinho para usá-los é um problema a ser enfrentado pelo desenvolvedor do carrinho. Se você é o desenvolvedor e possui um certificado, consulte os sinalizadores --cert, --cert-type, --key e --key-type curlpara configurar os usos de enrolamento de certificado e chave privada.

DerfK
fonte
Obrigado pela resposta. O problema foi resolvido agora. O problema foi que um de nossos desenvolvedores configurou incorretamente o terminal da API do Paypal como api.paypal.com. Deve ser api-3t.paypal.com para funcionar corretamente.
ArunS
1
Observe que essas respostas são obsoletas. O SSLv3 não é suportado devido à vulnerabilidade do POODLE. Usá-lo pode gerar um erro como este. Veja esta resposta StackOverflow
tomwhipple
-1

Eu encontro essa mesma pergunta.

Porque eu não abro a porta 443 em Centos.

Então você faz o checkout da porta 443!

sudo losf -i tcp: 443

Método de resolução:

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

na primeira linha, adicione duas linhas:

LoadModule ssl_module modules/mod_ssl.so
Listen 443

Você pode experimentá-lo!

Ame
fonte