|
Home → WINDEV 25 → Consumo de um webservice com solicitação HTTPS, AuthIdentifier, API REST |
Consumo de um webservice com solicitação HTTPS, AuthIdentifier, API REST |
Started by Boller, Oct., 05 2021 9:58 PM - No answer |
| |
| | | |
|
| |
Registered member 3,657 messages Popularité : +175 (223 votes) |
|
Posted on October, 05 2021 - 9:58 PM |
Blog de suporte técnico https://blogs.pcsoft.fr/fr/consommation-webservice-requete-https-authidentifie-api-rest-permettre-echanges-https-application-executee-systeme-connait-certificat-racine-certificat-utilise-serveur-web/281474976710996/read.awp
Consumo de um webservice com solicitação HTTPS, AuthIdentifier, API REST: como permitir trocas HTTPS de um aplicativo executado em um sistema que não conhece o certificado raiz do certificado instalado no servidor web?
No blog ST Tags: certificado, https, raiz, comunicação 05 de outubro de 2021
Publicado por Guillaume BAYLE
Princípio: Quando uma aplicação, site ou serviço web deve realizar trocas em HTTPS, o certificado do servidor web contactado deve: seja válido, ter um certificado raiz conhecido pelas autoridades de certificação instalado no PC, Mac, telefone Android, tablet da Apple, o firmware de um objeto conectado (...), que executa o aplicativo. Sem isso, a criptografia da conexão será impossível com, por exemplo, o seguinte retorno durante um HTTPSend, RESTsend, HTTPRequete (cf. FAQ 20558): Erro 100138 Um erro de sistema foi detectado ao enviar a solicitação HTTP. Detalhe do erro do sistema: falha no certificado SSL ou na verificação da chave SSH. Exemplo concreto: um aplicativo WINDEV Mobile no Android chama um serviço da web, o serviço da web está hospedado em um servidor da web equipado com um certificado Let's Encrypt cujo certificado raiz é "ISRG Root X1" desde 30/09/2021, dependendo da versão Android do dispositivo que executa o aplicativo: Android anterior a 7.1.1 (dezembro de 2016): erro "verificação de certificado SSL ... falhou" porque essas versões mais antigas do Android não suportam o certificado raiz "ISRG Root X1", Android 7.1.1 e todos os seguintes: a chamada é feita normalmente, o certificado raiz "ISRG Root X1" é conhecido. Soluções: Aqui estão as diferentes soluções que podem ser aplicadas quando o sistema do cliente não conhece o certificado raiz do servidor web: Adicione no sistema cliente que está executando o aplicativo a autoridade de certificação que não é conhecida. Nas configurações do Android, iOS ou nas configurações do Windows, escolhas dedicadas permitem a adição de autoridades confiáveis quando o editor não atualiza mais automaticamente. Esta solução requer intervenção nas configurações de cada dispositivo ou estação de trabalho, após a obtenção do certificado raiz ausente.
Ou divulgue o certificado para o aplicativo: obter o certificado de seu editor ou baixá-lo com um navegador do Windows, adicione o certificado nos arquivos para implantar com o aplicativo. Este arquivo também pode ser integrado à biblioteca (arquivo WDL) do aplicativo. chame a função AddTrustCertificate fornecendo a ela o certificado. A chamada pode ser feita a partir do código de inicialização do projeto ou, em qualquer caso, antes da execução da primeira solicitação HTTPS ao servidor. Ou substitua o certificado no servidor da web por um novo cujo certificado raiz será conhecido por todos os sistemas que devem executar o aplicativo. No caso de um servidor hospedado em uma plataforma PCSCLOUD, a instalação do certificado será feita diretamente do painel após a solicitação de um CSR. Bom saber : Os certificados raiz são disponibilizados por seus editores em seus sites. Por exemplo, para Let's Encrypt: https://letsencrypt.org/certificates/
Sempre é possível baixar o certificado raiz usado para criptografar as trocas com um servidor da web: em um navegador no Windows, conecte-se a qualquer página do servidor em HTTPS para exibir seu certificado ("ISRG Root X1" por exemplo, pode ser qualquer outro certificado ou um certificado automático - assinado para uso interno):
na janela do sistema de exibição de certificado, selecione "Caminho de certificação",
selecione o certificado raiz e clique em "Exibir o certificado":
em seguida, em "Detalhes" do botão de certificado "Copiar para um arquivo":
execute o assistente de exportação para obter um arquivo .cer. Este arquivo contém o certificado raiz. Ele pode então ser adicionado nas autoridades de certificação do sistema cliente ou usado com a função TrustCertificateAdd.
Caso excepcional de "assinatura cruzada": Pode acontecer que um certificado contenha mais de um certificado raiz. Este foi o caso dos certificados Let's Encrypt para gerenciar a transição do certificado raiz inicial "DST Root CA X3" para o certificado atual "ISRG Root X1". Nesse caso, o aplicativo que contata um servidor com tal certificado deve saber como encontrar o certificado correto nas cadeias de certificação, especialmente se uma delas for revogada. Este é o caso dos aplicativos WINDEV e WINDEV Mobile e dos sites e serviços da web WEBDEV da versão 25. Se a chamada for feita de uma versão anterior do framework, o primeiro certificado raiz encontrado deve ser válido e conhecido (consulte o parâmetro --preferred -chain "<root certificate>" nas etapas de geração de certificado.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | | | |
| | |
|