amagovpt / autenticacao.gov

Middleware Oficial de Identificação Eletrónica em Portugal - Cartão de Cidadão, da Chave Móvel Digital e Sistema de Certificação de atributos profissionais
https://www.autenticacao.gov.pt
European Union Public License 1.2
168 stars 33 forks source link

Erro a ler morada : "Could not resolve host: morada.cartaodecidadao.pt" - V 3.12 #176

Open Limanima opened 1 month ago

Limanima commented 1 month ago

Olá. Com o update para a versão 3.12 a leitura das moradas passou a devolver o erro "Could not resolve host: morada.cartaodecidadao.pt". Este erro encontra-se no ficheiro de log C:\Program Files\Portugal Identity Card\log.PTEID_0.log.

Transcrição do erro: XXXXXXX- 2024-07-25 15:14:14 - 9264|9508 - applayer - ERROR: RemoteAddress call to /sendDHParams failed! Using proxy: 0 curl error code: 6 curl message: Could not resolve host: morada.cartaodecidadao.pt

Este erro também ocorria na versão 3.11 mas foi resolvido alterando a configuração do proxy da seguinte forma:

var a = new PTEID_Config(PTEID_Param.PTEID_PARAM_PROXY_USE_SYSTEM); a.setLong(1);

Ao fazer o update para a versão 3.12 surgiram 2 questões:

1) Erro na chamada setLong() para o parametro PTEID_Param.PTEID_PARAM_PROXY_USE_SYSTEM Isto ocorre porque o enumerado PTEID_PARAM_PROXY_USE_SYSTEM mudou de valor. Foi necessário actualizar a DLL pteidlib_dotnet.dll na nossa solução. Depois o erro deixou de ocorrer. No entanto esta alteração quebra a compatibilidade com a versão 3.11. Neste ponto não há problema, uma vez que uma recompilação resolve a questão.

2) O parâmetro PTEID_PARAM_PROXY_USE_SYSTEM deixou de ter efeito Na versão 3.11 conseguiamos ler moradas alterado este parametro, na V3.12 deixou de funcionar com o erro indicado em cima (que é o mesmo erro que obtemos na v 3.11 se não alterarmos esta configuração)

-Sistema Operativo : Windows 10 Enterprise -Versao .net 4.8

agrr commented 1 month ago

Boa tarde,

precisamos de perceber porque no vosso caso a proxy de sistema não está a ser detectada/utilizada. Não nos parece que exista regressão na versão 3.12.0 ao nível de suporte a servidor proxy na consulta de morada.

Essa variável numa instalação limpa do software já vem ativa para utilizar o proxy de sistema, mas pode ser relevante forçar em código de forma a que a opção do utilizador guardada em registo (HKEY_CURRENT_USER) não seja aplicada.

Deve ativar o modo de diagnóstico na aplicação Autenticação.gov para ter mais detalhes escritos no ficheiro de log.

Com nível de debug no log deve ter uma linha deste género com um proxy configurada no Windows, neste caso com a variável pac vazia significa proxy configurado com host/porto manualmente: 2024-07-31 18:33:18 - 3104|13372 - openssl - INFO: Proxy settings: pac='', host='192.168.1.XX' and port=8888

Limanima commented 1 month ago

Bom dia. Este problema já foi resolvido, tratava-se de uma configuração no proxy. Obrigado

No entanto, depois de ultrapassar esta questão, estamos a obter um outro erro a obter moraradas com o cartão para testes. Conseguimos fazer a leitura dos dados, no entanto ao ler a morada, obtemos este erro: Os certificados de teste foram colocados na pasta C:\Program Files\Portugal Identity Card\eidstore\certs.

C:\Program Files\Portugal Identity Card\pteidguiV2.exe - 2024-08-01 17:56:01 - 10336|10296 - applayer - DEBUG: Received HTTP error 400 and data: {"ecdh_kifd":"","errorStatus":{"code":1009,"description":"SOD_CERTIFICATE_UNTRUSTED"}} C:\Program Files\Portugal Identity Card\pteidguiV2.exe - 2024-08-01 17:56:01 - 10336|10296 - applayer - INFO: eIDMW::APL_AddrEId::loadRemoteAddress_CC2 Endpoint (1) returned HTTP code: 400

agrr commented 1 month ago

Se tiver cartões de teste do novo modelo de CC, deve iniciar a aplicação em modo de teste, ou seja com o comando: pteidguiV2.exe -t. Em modo de teste a aplicação vai comunicar com o servidor apropriado: morada2.teste.cartaodecidadao.pt (porto 443) Os certificados da PKI de teste devem estar numa pasta diferente C:\Program Files\Portugal Identity Card\eidstore\certs_test tal como indicado aqui: https://amagovpt.github.io/docs.autenticacao.gov/manual_sdk.html#configurar-modo-de-teste

Se tiver cartões de teste do modelo antigo (CC1) é necessário também configurar o URL do serviço online: adicionando uma string remoteaddr_url_test em HKLM\SOFTWARE\PTEID\general com o valor https://morada.teste.cartaodecidadao.pt

Limanima commented 1 month ago

Ok, vamos retestar. Só mais uma questão. E no caso em que usamos a API, como "forçamos" o modo de teste? Edit: já vi como se faz. Obrigado