Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SSL connect error #52

Open
MoacirFuhr opened this issue Aug 12, 2015 · 7 comments
Open

SSL connect error #52

MoacirFuhr opened this issue Aug 12, 2015 · 7 comments

Comments

@MoacirFuhr
Copy link

Estou utilizando a classe na minha aplicação. Tudo funcionando perfeitamente em ambiente local e também no site. Mas quando acionei o SSL no site para ficar https:// parou de funcionar.
Agora recebe o seguinte erro:
(17) "SSL connect error"

Alguém tem alguma dica, já verifiquei os arquivos da classe diversas vezes e não consegui encontrar o motivo do erro.

@douglas-soriano
Copy link

Estou com o mesmo problema, desde semana passada. Testei em servidores diferentes, mandei mensagem no suporte da MoIP e não souberam me ajudar. Abri um chamado na minha hospedagem também para verificarem se não era algo do certificado. Estava tudo certo com o certificado, mas não souberam me ajudar também. Conseguiu alguma solução?

@MoacirFuhr
Copy link
Author

Não, não conseguiram me ajudar em nada. Só falaram do TLS e SSLv3, falei tambem com a hospedagem, na realidade, um ficou tocando a culpa pra cima do outro. Até agora não sei quem é o culpado.

@kauemendes
Copy link

Alguém sabe se alguém respondeu esse problema?

Por que estou tentando fazer o teste em dev, usando CURL no terminal o Handshake está ok, mas via PHP usando a mesma versão do CURL está com problema de conexão.

curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_USERPWD, $user . ":" . $passwd);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $param);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_1);

Unknown SSL protocol error in connection to desenvolvedor.moip.com.br:443

Sabem dizer o que pode ser?

@MoacirFuhr
Copy link
Author

Recebi o seguinte e-mail do suporte do moip:

Para finalizar a aplicação e partimos para homologação, você pode utilizar essa URL, que ainda está com TLS 1.0:
https://desenvolvedor2.moip.com.br/
Porém você precisa verificar a atualização do sistema até o dia 30/09/2015, nesta data o suporte ao TLS 1.0 será desativado em produção.

Alterando o endereço de https://desenvolvedor.moip.com.br/ para https://desenvolvedor2.moip.com.br/ nos arquivos Moip.php e MoipClient.php tudo passou a funcionar. Aparentemente é um erro do meu servidor de hospedagem que não está dando suporte a TLS 1.1 e 1.2.

@MoacirFuhr
Copy link
Author

Entrei em contato com a minha hospedagem da KingHost, e eles solucionaram o problema, e me enviaram a seguinte mensagem por e-mail:

Agradecemos seu contato.
Foram realizadas a atualização dos pacotes do sistema operacional dos servidores onde encontram-se os domínios com dificuldade.
Adicionalmente, as bibliotecas do Moip contidas em seu FTP não contemplam a configuração da versão de SSL a ser utilizada pelo PHP cURL, o que se faz necessário em ambientes CentOS 6, visto que a biblioteca NSS nesta versão do S.O. (por sinal, a mesma utilizada no servidor deles, e que é utilizado pelo curl), tenta por padrão a conexão via SSLv3. Sendo assim, foi adicionada a diretiva CURLOPT_SSLVERSION, com o valor 1 (para forçar TLS) nas funções contidas no arquivo /www/lib/MoipClient.php, no seu domínio, e realizado o teste informado no chamado (realização de uma compra via boleto bancário), o qual retornou em êxito conforme imagem em anexo.
Peço que tais modificações no arquivo citado sejam replicadas para seu outro domínio e realize novos testes. Caso a dificuldade persista, por favor, nos forneça informações de como podemos simular a dificuldade para realização de testes internos.
Por fim, oriento-lhe a sugerir à Moip que inclua a opção CURLOPT_SSLVERSION em sua biblioteca, visto que outros utilizadores do sistema que estejam hospedados em ambientes CentOS 6 (mesmo em sua versão 6.7, a mais atual) podem passar pela mesma dificuldade devido à ausência desta opção.

@leobaiano
Copy link

Eu estava com o mesmo problema e consegui resolver da seguinte forma:

No arquivo lib/MoipClient.php

Linha 30 e 31

 $curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);

Acrescenta curl_setopt($curl, CURLOPT_SSLVERSION, 1); deixando assim:

$curl = curl_init();
curl_setopt($curl, CURLOPT_SSLVERSION, 1);
curl_setopt($curl, CURLOPT_URL, $url);

Linha 69

CURLINFO_HEADER_OUT => true

Deixa assim:

 CURLINFO_HEADER_OUT => true,
 CURLOPT_SSLVERSION => 1

Linha 110

CURLOPT_RETURNTRANSFER => true

Deixa assim:

CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSLVERSION => 1

@carlilton
Copy link

Obrigado @leobaiano, isso resolveu meu problema.

brunoribeiro94 pushed a commit to brunoribeiro94/moip-php that referenced this issue Jan 20, 2016
corrigido problema TSL 
see moiplabs#52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants