Um parceiro B2B precisa fazer um retorno de chamada de uma máquina Redhat para um método de API em nosso servidor da Web (Centos7).
Adicionamos o endereço IP ao nosso firewall de software, mas nada estava acontecendo.
Eles informaram que receberam um SSL connect error
com a mensagem de erro sendo: NSS error -5938
Eles nos enviaram a resposta de sua solicitação de onda:
# curl --verbose "https://web1.company.com/callback?param1=val1¶m2=val2"
* About to connect() to proxy 127.0.0.1 port 8215 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8215 (#0)
* Establish HTTP proxy tunnel to web1.company.com:443
> CONNECT web1.company.com:443 HTTP/1.1
> Host: web1.company.com:443
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 Connection established
< Proxy-Connection: keep-alive
<
* Proxy replied OK to CONNECT request
* 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
curl: (35) SSL connect error
* NSS error -5938
* Closing connection #0
* SSL connect error
curl: (35) SSL connect error
[1]+ Exit 35
Erro ref: link
Eu pesquisei as palavras-chave curl
nss
error
5938
na Web (incluindo stackexchange) e isso resultou principalmente em usuários que recomendam que o curl seja atualizado ou recompilado.
O parceiro B2B expressou que atualizar ou recompilar não é uma opção, pelo menos no futuro próximo.
Coisas que tentei
Eu tentei curl de duas outras máquinas (com openssl não nss):
Pedi ao parceiro B2B para tentar forçar o uso de diferentes versões SSL / TLS:
curl --tlsv1
curl --tlsv1.0
curl --tlsv1.1
curl --tlsv1.2
curl --sslv2
curl --sslv3
Todos eles resultaram no mesmo erro.
Eu também investiguei a possibilidade de uma incompatibilidade de cifra (considerando que o cliente tinha nss
e o servidor tinha openssl
), mas havia algumas sobreposições claras.
No meu desespero, eu também pedi a eles que tentassem uma cifra inccorreta:
curl --ciphers TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
quando quis dizer ecdhe_rsa_aes_128_gcm_sha_256
, mas resultou no seguinte erro:
== Info: Unknown cipher in list: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
== Info: NSS error -5978
== Info: Closing connection #0
curl: (59) Unknown cipher in list: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
Usando uma cifra correta ecdhe_rsa_aes_128_gcm_sha_256
resultou no mesmo erro 5938.
Observação : não sei se passar pelo proxy é um problema significativo ou não. Apenas afirmando a configuração como eu tenho atualmente.
Alguém tem alguma sugestão sobre o que eu posso tentar em seguida? Obrigado