CentOS PHP erro cURL NSS 5938

4

Tendo um problema estranho com cURL e PHP em algumas caixas do CentOS.

Localmente, estou executando o CentOS 6.3. O Remote é o CentOS 5.9

Localmente, a caixa recebe uma requisição, scp é um arquivo para o servidor remoto, então realiza uma requisição cURL via PHP ao servidor remoto para enviar alguma informação. A solicitação sempre falha na primeira tentativa do dia. Pedidos subseqüentes funcionam bem. O Remote possui um certificado SSL válido - mesmo assim, desligar a verificação do cert e do host não corrige o problema.

O registro não foi muito útil. Transformando a verbosidade em 11, as entradas mais significativas são assim:

* About to connect() to www.example.com port 443 (#0)
*   Trying 203.0.113.10... * connected
* Connected to www.example.com (203.0.113.10) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* NSS error -5938
* Closing connection #0
* SSL connect error

Pesquisando o erro também não ajuda muito. Parece que o Twitter estava tendo um problema semelhante ( link ) que aparentemente corrigiram, mas não explicaram como ele foi corrigido .

Quaisquer ideias sobre onde procurar / o que fazer para mitigar o problema seriam apreciadas.

    
por stormdrain 09.09.2013 / 16:20

3 respostas

3

é um problema geral para o curl compilado com o NSS (somente os pacotes redhat-linuxes, debian e suse curl compilados sem o nss). você precisa compilar o curl de fontes sem nss-library.

Então, eu não tenho solução como https-connections trabalhou com o nss-curl.

curl --version curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.14.3.0 zlib/1.2.7 libidn/1.26 libssh2/1.4.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz

curl --version curl 7.25.0 (x86_64-suse-linux-gnu) libcurl/7.25.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.25 libssh2/1.4.0 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

    
por 03.10.2013 / 06:44
3

Eu encontrei um "erro NSS -5938" similar ao usar um sistema CentOS 6.x desatualizado para conectar a um dispositivo embarcado que parou de aceitar o TLS 1.0, permitindo apenas o TLS 1.1 e superior. A solução para mim foi fazer um yum update . Eu vi essas atualizações ocorridas:

---> Package curl.x86_64 0:7.19.7-46.el6 will be updated
---> Package curl.x86_64 0:7.19.7-52.el6 will be an update
...
---> Package nss.x86_64 0:3.21.0-0.3.el6_7 will be updated
---> Package nss.x86_64 0:3.21.3-2.el6_8 will be an update

Acho que essa pode ser a mudança específica que ajudou:

$ rpm -q --changelog curl
[...]
* Mon Jan 11 2016 Kamil Dudka <[email protected]> 7.19.7-50
- use the default min/max TLS version provided by NSS (#1289205)
    
por 22.03.2017 / 04:07
0

A mensagem de erro NSS 5938 geralmente significa que o servidor eliminou sua conexão. Você deve verificar os logs do lado do servidor do alvo do curl para ver porque sua conexão foi cancelada.

Pode ser algo tão simples como "não foi possível obter um nome de host de DNS inverso para X".

    
por 11.09.2013 / 19:16