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.