Jump to content
cjulio

Utilizar Webservices da AT

Recommended Posts

desconfiado

Tenho um cliente que está a receber o erro "servidor de autenticação indisponivel". Mas é só nesse cliente.

Nós estamos a tirar a chave publica directamente do certificado (o ficheiro .cer que a AT disponibiliza) e funciona em todos os clientes excepto neste agora mesmo. Que raio se passará?

PS: O novo certificado está lá no sitio. E o programa não dá erro a carregar o certificado.

Edited by desconfiado

Share this post


Link to post
Share on other sites
Sergio.
2 horas atrás, joaquim vilasboas disse:

Vejam que é muito facil

fui ao goole e perguntei ao google "O que é o cer file" e logo ele me respondeu o primeiro site que encontrou https://support.ssl.com/Knowledgebase/Article/View/19/0/der-vs-crt-vs-cer-vs-pem-certificates-and-how-to-convert-them.

vejam lá se as varias questões anteriores têm algum razão de aparecer num fórum como este. "Portugal a Programar".

Estou a apenas a tentar elucidar algumas pessoas, e chamar a atenção dos administradores para este site ser uma referência, mais nada.

 

Abraço.

Sr. Jaquim vilasboas, gostaria de ver os seus comentários com o seu registo original e não com um registo criado à 4 horas.

 

Leva-me a crer que muitas das vezes é mais fácil voltar a perguntar do que pesquisar.

E sim, podia haver um maior controlo por parte dos moderadores do fórum, mas alguém poderia queixar-se de censura ou como tá agora na moda, serem acusados de descriminação.

Sendo certo que programação e encriptação não é exactamente a mesma coisa, mas querendo saber, facilmente se encontra na NET alguns conhecimentos básicos.

Dito isto,

Obrigado por tudo a estes Administrados do Portugal-a-progamar pois sem este fórum a vida seria bem mais difícil.

Um bom fim de semana para todos,

Sérgio

Share this post


Link to post
Share on other sites
PHonorato
Em 24/07/2020 às 16:26, desconfiado disse:

Tenho um cliente que está a receber o erro "servidor de autenticação indisponivel". Mas é só nesse cliente.

Nós estamos a tirar a chave publica directamente do certificado (o ficheiro .cer que a AT disponibiliza) e funciona em todos os clientes excepto neste agora mesmo. Que raio se passará?

PS: O novo certificado está lá no sitio. E o programa não dá erro a carregar o certificado.

Tive um problema parecido à umas semanas atrás.

Vê lá se o relógio desse computador está certo? devia de estar a sincronizar com a hora da internet, tens uma opção para isso quando vais acertar o relogio.

Share this post


Link to post
Share on other sites
joaquim vilasboas
Em 24/07/2020 às 19:21, Sergio. disse:

Sr. Jaquim vilasboas, gostaria de ver os seus comentários com o seu registo original e não com um registo criado à 4 horas.

 

Leva-me a crer que muitas das vezes é mais fácil voltar a perguntar do que pesquisar.

E sim, podia haver um maior controlo por parte dos moderadores do fórum, mas alguém poderia queixar-se de censura ou como tá agora na moda, serem acusados de descriminação.

Sendo certo que programação e encriptação não é exactamente a mesma coisa, mas querendo saber, facilmente se encontra na NET alguns conhecimentos básicos.

Dito isto,

Obrigado por tudo a estes Administrados do Portugal-a-progamar pois sem este fórum a vida seria bem mais difícil.

Um bom fim de semana para todos,

Sérgio

Sérgio, não vale a pena. só tomei esta posição porque realmente estava a ser demasiado. Mas acredita que os meus posts foram todos para elucidar esta gente e não ao contrario.

 

Share this post


Link to post
Share on other sites
Bruno Barbosa
Em 24/07/2020 às 16:26, desconfiado disse:

Tenho um cliente que está a receber o erro "servidor de autenticação indisponivel". Mas é só nesse cliente.

Nós estamos a tirar a chave publica directamente do certificado (o ficheiro .cer que a AT disponibiliza) e funciona em todos os clientes excepto neste agora mesmo. Que raio se passará?

PS: O novo certificado está lá no sitio. E o programa não dá erro a carregar o certificado.

Para o serviço ou aplicação em causa, o utilizador que a está a executar, tem permissões para o mesmo, sei que é uma resposta básica, mas pelo padrão, o "servidor de autenticação indisponivel" parece ser a resposta quando não se está a enviar a informação de certificação

 

Share this post


Link to post
Share on other sites
Rui Carlos

@joaquim vilasboas o staff do fórum é voluntário, e não tem que andar a ler as mensagens todas.  Adicionalmente, costuma haver mais preocupação em manter a cordialidade/respeito, do que evitar perguntas "fáceis", o que é algo bem complicado de definir (ainda assim, várias das minhas intervenções neste tópico foram para redireccionar os utilizadores para respostas anteriores).

Em 24/07/2020 às 16:55, joaquim vilasboas disse:

Se por acaso alguma destas pessoas se dedicar a desenvolver software mobile, tipo Android, IOS etc.. com é que se vão desenvencilhar. porque a appleusa certificados para tudo e mais alguma coisa, a Google não fica atrás, como e que esses ditos programadores vão fazer. Vão enviar um email para a Apple a perguntar "Olhe vocês enviaram um certificado ou uma key? Como converto isto para aquilo." So mesmo levando isto na desportiva.

Eu não trabalho com software da AT, e também já há uns anos que não lido com certificados da Apple, mas suspeito que a documentação da Apple e Google será bem melhor, e que eles não usam certificados não confiáveis, nem certificados com nome "ChaveCifraPublicaAT2023.cer" ou "ChavePublicaAT2020.cer", nem ficheiros zipados com passwords.  Adicionalmente, na única situação que tive que usar "manualmente" certificados da Apple, era um certificado para uma chave privada minha (isto foi para desenvolver uma extensão do Safari, não faço ideia de como funciona no iOS).

Isto de ter que andar a instalar/gerir manualmente certificados para chaves públicas de servidores com os quais o meu cliente vai comunicar é algo que me ultrapassa (mas parece que é requisito para se ser programador :)).

  • Vote 2

Share this post


Link to post
Share on other sites
joaquim vilasboas
27 minutos atrás, Rui Carlos disse:

@joaquim vilasboas o staff do fórum é voluntário, e não tem que andar a ler as mensagens todas.  Adicionalmente, costuma haver mais preocupação em manter a cordialidade/respeito, do que evitar perguntas "fáceis", o que é algo bem complicado de definir (ainda assim, várias das minhas intervenções neste tópico foram para redireccionar os utilizadores para respostas anteriores).

Eu não trabalho com software da AT, e também já há uns anos que não lido com certificados da Apple, mas suspeito que a documentação da Apple e Google será bem melhor, e que eles não usam certificados não confiáveis, nem certificados com nome "ChaveCifraPublicaAT2023.cer" ou "ChavePublicaAT2020.cer", nem ficheiros zipados com passwords.  Adicionalmente, na única situação que tive que usar "manualmente" certificados da Apple, era um certificado para uma chave privada minha (isto foi para desenvolver uma extensão do Safari, não faço ideia de como funciona no iOS).

Isto de ter que andar a instalar/gerir manualmente certificados para chaves públicas de servidores com os quais o meu cliente vai comunicar é algo que me ultrapassa (mas parece que é requisito para se ser programador :)).

Hoje em dia se não sabes lidar com certificados na programação, "Ler, extrair, converter, instalar" podes contar que de programador deve ter pouco. no presente e num futuro proximo tudo vai girar em torno da segurança que passas ao teu cliente. Entretanto vai vir a dita fatura electrónica. estou mesmo a ver esta gente toda a perguntar " com se inclui um certificado no pdf gerado pela minha aplicação?" ou então " consigo gerar a fatura em pdf mas não estou a ver como incluir o cerificado". Vai ter que se abrir um topico novo para isso. Por isso e outras coisas mais e que o programador tem que saber lidar com certificados na ponta da lingua. Como por exemplo enviar um email atravez da aplicação, encriptado para um determinado destinatário.

Ou então eu estou muito errado e isso não faz parte da programação. O Programador faz a aplicação enviar o email e depois o encriptador trata do certificado, assim como tem que tratar de mecher no certificado para a fatura em pdf.

 

@Rui Carlos espero que esteja tudo bem contigo, um abraço e boas linhas de código.

Share this post


Link to post
Share on other sites
Smig
Em 24/07/2020 às 15:31, joaquim vilasboas disse:

Amigo muda de profissão não serves para programador, não és programador nem aqui nem na china. Acredita deves ter algum talento. dedica-te a ele ante que seja tarde, vais ver que és mais feliz do que nunca.

Independentemente da razão que possas ter, este tipo de interação com outros utilizadores do forum é muito mais grave do que qualquer dos problemas que apresentaste. Há formas adequadas de partilhar uma preocupação acerca da moderação num forum. Este não foi um bom exemplo.

Com perguntas básicas ou não, este tópico nunca deixou de ser incrivelmente útil e valioso ao longo de muitos anos, por isso vamos ter calma na forma como criticamos os moderadores e os seus intervenientes, ou arriscas-te a deitar fora o bebé com a água do banho.

  • Vote 2

Share this post


Link to post
Share on other sites
CrominhO
30 minutos atrás, Rui Carlos disse:

(...)

Isto de ter que andar a instalar/gerir manualmente certificados para chaves públicas de servidores com os quais o meu cliente vai comunicar é algo que me ultrapassa (mas parece que é requisito para se ser programador :)).

Concordo Rui, tanto que meti like, mas se o @joaquim vilasboas (seja ele quem for) não tem razão na questão dos Administradores, tem a meu ver razão em tudo o resto. Se requisitos para ser programador, dependem da ideia de cada um, para a AT é bem clara. Se um programador não sabe o que é um Certificado, não pode ter uma aplicação certificada. De resto, até isso eles ensinam na documentação disponibilizada por eles desde 2008 se a memória não me falha. Se um Programador não sabe o que é um Par de Chaves RSA não pode ter uma aplicação Certificada, pois isso é o básico para certificar qualquer aplicação, de resto até o pedido para certificar tem de ser acompanhado pela emissão de uma chave. 

Penso que há aqui 2 situações. 

1ª Uma pessoa, com tanta coisa pode-se esquecer de um comando, de uma forma de fazer as coisas, pode até estar baralhado. A quem não acontece?... Até mesmo com falta de vontade de ir pesquisar aqui no P@P, até isso, a meu já é admissível, não é bonito, mas é admissível.   

2ª E onde estou totalmente de acordo com o @joaquim vilasboas, e até partilho da frustração dele, é que aparecem dezenas, para não dizer centenas de aplicações Certificadas, SEM LER as centenas de documentos que nós lemos de há 10 anos a esta parte, sem estudar 1/3 daquilo que estudamos durante todo este tempo, e só porque "batem umas linhas de código" certificam aplicações em meses, porque tudo o que resto que deviam ter Estudado e Aprendido ao longo destes Anos, obtêm facilmente aqui no Forum, simplesmente perguntando.


As mentes humanas são realmente um local estranho!

Share this post


Link to post
Share on other sites
CrominhO
25 minutos atrás, Smig disse:

(...)Com perguntas básicas ou não, este tópico nunca deixou de ser incrivelmente útil e valioso ao longo de muitos anos, por isso vamos ter calma na forma como criticamos os moderadores e os seus intervenientes, ou arriscas-te a deitar fora o bebé com a água do banho.

Desculpa lá @Smig, tendo em atenção os 2 pontos que referi em cima, achas normal que um programador com uma Aplicação Certificada não saiba o que é um Certificado??? Só podes estar a brincar 😐 ... É o que eu digo, uma pessoa esquecer-se de um comando, de uma linha, de qualquer coisa é normal, agora ter uma Aplicação Certificada sem saber o que é um Certificado, é simples, nem precisa de ir ao Google, precisa de ir começar a ler os documentos que a AT emitiu desde o inicio. 

Assim é fácil Certificar aplicações. Basta "bater umas linhas" de código, e prontos, o resto é ir perguntar ao P@P e temos uma aplicação Certificada num mês 😐 ... E depois, como diz o @joaquim vilasboas, quando alterarem alguma coisa, voltam a vir cá perguntar... Isso é dar o Peixe em vez de ensinar a Pescar.

 

EDIT: BTW @Smig, acho que o bebé já foi fora com a agua do banho lol... Vais ás ultimas 4 ou 5 Páginas e vais ver onde anda o pessoal que começou isto desde o inicio??? vês 1 comentário do @americob, 1 ou 2 do @marcolopes, e pouco mais...  E sabes porquê? Eu não sei mas imagino... Imagino que custe uma pessoa "queimar pestanas" anos a fio, e depois andar sempre a repetir as mesmas coisas a utilizadores mais recentes, como o que é um .Cer 😐 

Edited by CrominhO

As mentes humanas são realmente um local estranho!

Share this post


Link to post
Share on other sites
danieljsfernandes

Bom dia.

Estou a desenvolver uma aplicação para entrega automáticas da DMR da AT.

A AT não disponibiliza nenhum "webservice" ou qualquer documentação associada para a entrega da mesma como já foi referido algumas vezes neste fórum.

No entanto, após umas pesquisas, acabei por descobrir que a entrega é realizada do POST ao endereço https://www.portaldasfinancas.gov.pt/pt/externalapplet/oadmrsv/entregarDMROnline.action

As variáveis deste POST vão em base 64. No entanto, definindo todas aquelas que acredito que sejam necessárias, o webservice retorna-me uma mensagem a dizer que a minha versão não é a mais recente.

Alguém sabe ultrapassar este problema?

 

Melhores cumprimentos,

Daniel Fernandes

 


"Medir o progresso de um programa por linhas de código é como medir o processo de montagem de um avião pelo peso."

Bill Gates

Share this post


Link to post
Share on other sites
jmsimoes
2 hours ago, danieljsfernandes said:

Bom dia.

Estou a desenvolver uma aplicação para entrega automáticas da DMR da AT.

A AT não disponibiliza nenhum "webservice" ou qualquer documentação associada para a entrega da mesma como já foi referido algumas vezes neste fórum.

No entanto, após umas pesquisas, acabei por descobrir que a entrega é realizada do POST ao endereço https://www.portaldasfinancas.gov.pt/pt/externalapplet/oadmrsv/entregarDMROnline.action

As variáveis deste POST vão em base 64. No entanto, definindo todas aquelas que acredito que sejam necessárias, o webservice retorna-me uma mensagem a dizer que a minha versão não é a mais recente.

Alguém sabe ultrapassar este problema?

 

Melhores cumprimentos,

Daniel Fernandes

 

Caro,

Já tentámos desennvolver uma coisa parecida. Acabámos por desistir porque tínhamos outras prioridades. Estou interessado nesse tema, se conseguires resolver podes partilhar a solução? Obg.

Umas postas de pescada: Não te faltará uma variável "versão" ou qualquer coisa do género? E.g. o formato dos dados que estás a enviar poderá estar errado para a "versão actual" do serviço. No Webservice de IVA tivémos problemas semelhantes, acabámos por ter que zippar e codificar a declaração propriamente dita em b64 duas vezes, com compression level 6. Isto não estava documentado em lado nenhum, só percebemos olhando para o código m*rdoso da AT.

É bastante possível que não tenha nada a ver, mas vê um post meu que talvez te dê ideias: https://www.portugal-a-programar.pt/forums/topic/57734-utilizar-webservices-da-at/?do=findComment&comment=618729 .

 

Força nisso!

Edited by jmsimoes

Share this post


Link to post
Share on other sites
americob

Tenho um cliente que deixou de conseguir comunicar DT's em Abril mas só agora contactou. Acho que deve fazer poucos DT's por mês e com a pandemia, nem tem feito nenhuns.

Mas, curioso, funciona na porta 701 (testes) e não funciona na porta 401 (produção).

Posto isto, não tem nada a ver com certificados, atualizados ou não.

Já experimentei copiar a instalação dele para outro computador e tudo funciona na perfeição.

Já experimentei copiar uma instalação funcional (com outra empresa/credenciais) para o computador dele e deixa de funcionar.

Sem dúvida, o problema está no lado dele. Seja no computador, seja no firewall, seja no ISP, seja alguma atualização recente do SO que no caso dele é o windows 7, etc.

O erro devolvido pelo objeto da chilkat é: 

Citação

<socket2Connect>
    <connect2>
        <connectImplicitSsl>
            <clientHandshake>
                <clientHandshake2>
                    <sendClientKeyExchange>
                        <sendHandshakeMessages>
                            <error>Error sending on socket (1)</error>
                            <SocketError>WSAECONNRESET An existing connection was forcibly closed by the remote host.</SocketError>
                            <info>For more information see this Chilkat Blog post: http://www.cknotes.com/?p=217</info>
                            <send_size>75</send_size>
                            <error>Failed to send TLS message.</error>
                        </sendHandshakeMessages>
                    </sendClientKeyExchange>
                    <error>Failed to send ClientKeyExchange</error>
                </clientHandshake2>
            </clientHandshake>
            <error>Client handshake failed. (3)</error>
        </connectImplicitSsl>
        <ConnectFailReason>111</ConnectFailReason>
    </connect2>
</socket2Connect>
 

Alguém aqui que tenha passado por algum problema destes?

Share this post


Link to post
Share on other sites
CrominhO
4 horas atrás, jmsimoes disse:

(...)Se as pessoas "têm que estudar mais" talvez tivesse sido melhor o autor publicar links úteis para estudar certificados, RSA, documentação dos serviços da AT, etc.

Aqui no forum estão diversos Links e exemplos, está na Página da AT e em mais alguns sítios. Agora peço desculpa, se só eu que acho que se alguém quer certificar uma aplicação deverá ler pelo menos o manual de instruções 2006 da AT (à altura DGCI) para certificar, ou por exemplo para comunicar Documentos, ler o manual de integração de Software datado de 2012... https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/Documents/Comunicacao_Dados_Documentos_Transporte.pdf 

https://info.portaldasfinancas.gov.pt/pt/apoio_contribuinte/SAFT_PT/Paginas/news-saf-t-pt.aspx

Onde dizem os requisitos, explicam como se faz, e até têm exemplos, imagine-se. 

Não ir rever todas as alterações feitas entretanto, até dou de barato, mas ir criar algo para AT sem ler pelo menos o manual de instruções que eles disponibilizam para o efeito, é surreal. 

 

 


As mentes humanas são realmente um local estranho!

Share this post


Link to post
Share on other sites
CrominhO
1 hora atrás, americob disse:

(...)Sem dúvida, o problema está no lado dele. Seja no computador, seja no firewall, seja no ISP, seja alguma atualização recente do SO que no caso dele é o windows 7, etc.

O erro devolvido pelo objeto da chilkat é: 

Alguém aqui que tenha passado por algum problema destes?

Já apanhei esse erro há uns anos mas já nao me recordo porquê Américo. 

E apesar de conhecer o chilkat não trabalho com ele, não sei se utiliza alguma das definições das "opções de Internet", mas como o win7 recebeu recentemente o Edge pode ter alterado alguma coisa aí, se for o caso do chilkat usar isso.  

  • Vote 1

As mentes humanas são realmente um local estranho!

Share this post


Link to post
Share on other sites
joaquim vilasboas
2 horas atrás, americob disse:

Tenho um cliente que deixou de conseguir comunicar DT's em Abril mas só agora contactou. Acho que deve fazer poucos DT's por mês e com a pandemia, nem tem feito nenhuns.

Mas, curioso, funciona na porta 701 (testes) e não funciona na porta 401 (produção).

Posto isto, não tem nada a ver com certificados, atualizados ou não.

Já experimentei copiar a instalação dele para outro computador e tudo funciona na perfeição.

Já experimentei copiar uma instalação funcional (com outra empresa/credenciais) para o computador dele e deixa de funcionar.

Sem dúvida, o problema está no lado dele. Seja no computador, seja no firewall, seja no ISP, seja alguma atualização recente do SO que no caso dele é o windows 7, etc.

O erro devolvido pelo objeto da chilkat é: 

Alguém aqui que tenha passado por algum problema destes?

Aqui tem um Pagina que explica detalhadamente o erro que estas a receber.

TLS/SSL Handshake Failures

  • Vote 2

Share this post


Link to post
Share on other sites
jmsimoes
5 hours ago, CrominhO said:

Não ir rever todas as alterações feitas entretanto, até dou de barato, mas ir criar algo para AT sem ler pelo menos o manual de instruções que eles disponibilizam para o efeito, é surreal. 

Sim, concordo... Acho que é os posts a espingardar também não ajudam nada. Enfim, o ideal era este forum ter um sistema de downvote (além do upvote que já tem) como no stackoverflow ou coisa parecida. Perguntas flagrantes como essas iam logo para o buraco, as pessoas eram obrigadas a estudar e a formular bem as perguntas, e a malta escusava de se chatear.

Share this post


Link to post
Share on other sites
Rui Carlos
6 horas atrás, americob disse:

Tenho um cliente que deixou de conseguir comunicar DT's em Abril mas só agora contactou. Acho que deve fazer poucos DT's por mês e com a pandemia, nem tem feito nenhuns.

Mas, curioso, funciona na porta 701 (testes) e não funciona na porta 401 (produção).

Posto isto, não tem nada a ver com certificados, atualizados ou não.

Já experimentei copiar a instalação dele para outro computador e tudo funciona na perfeição.

Já experimentei copiar uma instalação funcional (com outra empresa/credenciais) para o computador dele e deixa de funcionar.

Sem dúvida, o problema está no lado dele. Seja no computador, seja no firewall, seja no ISP, seja alguma atualização recente do SO que no caso dele é o windows 7, etc.

O erro devolvido pelo objeto da chilkat é: 

Alguém aqui que tenha passado por algum problema destes?

Isso parece ser o servidor a interromper a ligação.  Já vi casos em que isso acontecia por incompatibilidades no TLS (versão ou cifras suportadas), mas se funciona em testes, este não devia ser o problema (a menos que os ambientes de testes e produção suportem funcionalidades diferentes).  Por esta razão, também acharia estranho ser um problema de actualização do Windows.

  • Vote 1

Share this post


Link to post
Share on other sites
joaquim vilasboas
31 minutos atrás, jmsimoes disse:

Sim, concordo... Acho que é os posts a espingardar também não ajudam nada. Enfim, o ideal era este forum ter um sistema de downvote (além do upvote que já tem) como no stackoverflow ou coisa parecida. Perguntas flagrantes como essas iam logo para o buraco, as pessoas eram obrigadas a estudar e a formular bem as perguntas, e a malta escusava de se chatear.

Ajudam a abrir os olhos. Porque copiar as coisas e fácil, procurar as soluções e corrigir os erros para chegar a um código estável é que é difícil. Quando aparece uma individuo como eu a dizer as verdades doí. Eu bem sei que fui ao estremo, o problema e que estavam a cair no ridículo. e estava toda a gente a se acomodar com os meninos a pedir pelas almas para os ajudarem quando eles não se preocuparam em estudar uma solução para resolverem o problema.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.