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

9

Temos um site de compras on-line. Quando eu estou indo para a página de check-out eu estou recebendo um erro como este "erro: 14094410: SSL rotinas: SSL3_READ_BYTES: falha de handshake de alerta sslv3 (35)"

No log de erros do apache, vejo 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 eu tentei me conectar ao api.paypal.com usando o 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
    
por ArunS 02.02.2011 / 06:11

2 respostas

3

openssl s_client explica melhor o que está acontecendo aqui, já que é possível receber ou enviar essas mensagens. api.paypal.com está solicitando um certificado de cliente específico (este é o * SSLv3, TLS handshake, Request CERT (13) linha curl está imprimindo) e você está enviando o certificado errado (ou nenhum), então 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 da api do paypal, parece que você precisará solicitar um certificado de cliente para a API . Eles também têm uma opção "assinatura" de nome de usuário / senha, mas essa opção usa um servidor completamente diferente . Se você tiver isso, configurar o software do carrinho para usá-los é um problema para lidar com o desenvolvedor do carrinho. Se você for o desenvolvedor e tiver um certificado, consulte os sinalizadores --cert, --cert-type, --key e --key-type em curl para configurar o certificado e usa o curl de chave privada.

    
por 02.02.2011 / 07:11
-1

Eu encontro essa mesma pergunta.

Porque eu não abro o porto 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 experimentar!

    
por 31.03.2017 / 11:49