01. DOMÍNIO WWW.MEURH.WORLD
Para apoiar no entendimento das informações prévias sobre SSL realizamos um registro desse domínio https://meurh.world para validações e incluímos um certificado gratuito de domínio SSL/TLS, gerado por uma empresa com autoridade certificadora (CA – Certification Authority), nesse caso de uso utilizamos os serviços da empresa https://zerossl.com.
O objetivo de utilização dessa certificadora ZeroSSL foi evitar a utilização do OpenSSL, pois o mesmo gera certificados auto-assinados, consequentemente não conseguiríamos um ambiente seguro de domínio para validação do caso de uso ou teríamos que importar manualmente o certificado OpenSSL o que é totalmente contra a aceitação e importação de certificados sem autenticidade e confiabilidade.
Esse caso de uso tem o objetivo de apoiar no entendimento da configuração do 'appserver.ini' do Protheus para endereços externos(públicos) de acesso ao portal do App MeuRH.
Nas imagens, abaixo ao realizarmos o acesso na URL, podemos ver que o certificado de domínio foi validado corretamente de maneira automática.
02. AVALIAÇÃO DO CERTIFICADO NO SERVER PROTHEUS
Seguindo na avaliação essa mesma URL irá realizar um redirecionamento automático para um IP publico externo que foi declarado no 'appserver.ini' utilizando o mesmo certificado no formato PEM(apache), esse modelo de certificado é codificado em BASE64 e homologado para permitir configurações no server do Protheus.
O redirecionamento é realizado para o endereço IP Externo https://104.210.222.191/ , observe que nas imagens abaixo o portal é carregado, todavia a certificado não é reconhecido, sendo necessário o usuário realizar a aprovação para que se possa seguir no carregamento do portal.
Durante esse processo em que o browser realiza a solicitação ao server para o inicio e estabelecimento da conexão existe uma etapa chamada de “Handshake” (aperto de mãos), onde eles “negociam” uma conexão criptografada e a geração de uma chave única de acesso para troca de informações.em pacotes criptografados.
Nesse caso durante esse processo o browser identificou que o certificado usado não tem uma Autoridade Certificadora válida ou mesmo não é permitido para um determinado domínio ou endereço IP, avisando que o site não é confiável, retornando a mensagem ERR_CERT_AUTHORITY_INVALID. para dominios ou ERR_CERT_COMMON_NAME_INVALID para hostnames diferentes.
Esses mesmos problemas também podem ser verificados ao realizar o acessos a URL publicada para APIs REST do server.
03. CERTIFICADORA ZEROSSL.COM
Para utilização dessa certificadora gratuita ZEROSSL é muito simples, basta a realização de um cadastro e em 4 passos é possível realizar a geração de um certificado gratuito de domínio.
O único ponto de atenção é no momento de realizar a exportação do certificado no modelo PEM, a partir desse momento serão gerados os seguintes arquivos:
Os 3 arquivos são necessários para importar o certificado no provedor web do site, todavia para configuração do Appserver Protheus utilizamos 'certificate.crt' e 'private.key'.
04. CONVERTENDO CERTIFICADOS
O protheus appserver necessita que os arquivos de certificados estejam no padrão apache, em geral possuem extensão ".pem", sendo esse arquivo responsável em identificar as chaves pública, privada e raiz do certificado.
No caso do protheus os dados de chave publica e chave privada devem ser separadas para as configurações no arquivo "appserver.ini".
A seu empresa certificada normalmente possui a capacidade de gerar exportar certificados nesse formato, todavia caso não esteja disponível poderá ser utilizado funções de tech para realizar essa exportação, nos links abaixo é possível conhecer essas funções com seus respectivos exemplos de utilização:
Ao configurar e inicializar os certificados no seu server protheus, ainda é possível executar a função PFXInfo para realizar uma validação e verificação se todas as informações do certificado são retornadas corretamente.