Boa tarde,
Estou a ter problemas a comunicar guias de transporte no servidor de testes https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte.
Estou a utilizar:
- CentOS Linux release 7.2.1511 (Core).
- PHP 7.0.10
- OpenSSL 1.0.1e-fips 11 Feb 2013
- curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.19.1 Basic ECC zlib/1.2.7 libidn/1.28 libssh2/1.4.3
Na contrução do pedido cURL tenho:
curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
O resultado do meu pedido dá o seguinte erro "curl: (58) unable to load client key: -8178 (SEC_ERROR_BAD_KEY)". Depois de analisar o log do Apache aparecem-me as seguintes linhas:
* About to connect() to servicos.portaldasfinancas.gov.pt port 701 (#3)
* Trying 213.13.158.240...
* Connected to servicos.portaldasfinancas.gov.pt (213.13.158.240) port 701 (#3)
* unable to load client key: -8178 (SEC_ERROR_BAD_KEY)
* NSS error -8178 (SEC_ERROR_BAD_KEY)
* Peer's public key is invalid.
* Closing connection 3
Depois de receber o certificado de testes e a chave pública criei um certificado e uma chave para utilizar com a livraria cURL. O comandos que executei foram os seguintes:
1- openssl pkcs12 -in TesteWebservice.pfx -nocerts -out pfxKey.pem
2- openssl pkcs12 -in TesteWebservice.pfx -clcerts -nokeys -out pfxcert.pem
Será que tenho que criar de outra forma o certificado e a chave? Podem ajudar-me com esta questão?
Obrigado
↧