1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Framework - Linha Datasul - TEC - Configuração de HTTPS para o Datasul for THF utilizando o serviço

Discussão em 'PO-IU - THF' iniciado por fdantas, Junho 17, 2022.

  1. fdantas

    fdantas Administrator Moderador

    Bom dia pessoal, como alguns links da Totvs as vezes somem, estou postando aqui os que o pessoal comenta serem interessantes.


    Framework - Linha Datasul - TEC - Configuração de HTTPS para o Datasul for THF utilizando o serviço Tomcat do produto

    Atualizado em:
    25 de março de 2022 16:02

    [​IMG]Tempo aproximado para leitura:00:08:45 min
    DúvidaComo posso configurar um certificado SSL diretamente no serviço Tomcat do Datasul for THF?

    AmbienteFramework - Framework (Linha Datasul) – Tomcat – Todas as versões

    SoluçãoO objetivo deste conteúdo é dar uma breve orientação sobre o procedimento de utilização de um conector seguro no Tomcat, para acesso por HTTPS.

    Neste processo, será necessário um certificado SSL para ao endereço que será utilizado na URL de acesso ao produto. Este certificado pode ser obtido com uma autoridade certificadora ou criar um auto assinado.

    Segundo documentação existente do Tomcat, o módulo padrão utilizado no conector aceita os seguintes formatos de armazenamento de chaves: JKS, PKCS11 e PKCS12.

    A autoridade pode entregar os certificados em formato de armazenamento diferente, sendo necessário criar o arquivo em um dos formatos suportados. O arquivo que será utilizado no Tomcat deve conter o certificado raiz, intermediários quando houver, o certificado adquirido e chave privada.

    Não é abordado neste artigo todos os comandos e parâmetros existentes para realizar esta mudança de formato, requisições de certificados ou mesmo criar auto assinados, bem como configurações das ferramentas utilizadas. As principais ferramentas para estas atividades são o OpenSSL e Keytool; caso necessário verifique suas documentações.

    Para este exemplo, são utilizados os arquivos recebidos de uma autoridade certificadora. Foram disponibilizados os arquivos ca_bundle.crt e certificate.crt. Nestes estão contidos o certificado para o endereço que utilizaremos no acesso, bem como os certificados raiz e intermediário. Também vamos utilizar o arquivo private.key, que contém a chave privada e foi criado no momento de gerar a requisição - CSR - para a autoridade certificadora.

    Neste caso, utiliza-se o OpenSSL para armazenar os arquivos acima citados em um arquivo com formato PKCS12. Abaixo comando para esta etapa:

    openssl pkcs12 -export -in certificate.crt -inkey private.key -CAfile ca_bundle.crt -caname root -out meusite.p12 -name meusite
    Neste momento será solicitada a criação de uma senha para o arquivo meusite.p12. Com o arquivo meusite.p12 criado, é realizada a configuração no Tomcat.

    Abaixo do diretório principal do Tomcat, crie uma pasta para copiar o arquivo criado anteriormente, como sugestão é utilizada uma pasta com nome cert.

    Localize na pasta do Tomcat, subdiretório conf, o arquivo server.xml.

    Com um editor de textos, abra o arquivo e localize o conector HTTP utilizado atualmente. Para facilitar, procure pela porta utilizada no acesso ao produto, no exemplo 8080:

    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
    Abaixo deste, vamos criar um novo conector que irá responder pelas requisições HTTPS. No arquivo server.xml existem alguns exemplos, porém pode ser inserido um novo conforme modelo abaixo:

    <Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
    sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation"
    connectionTimeout="20000"
    SSLEnabled="true" clientAuth="false" scheme="https" secure="true" sslProtocol="TLS"
    port="443" enableLookups="false"
    maxThreads="5000" minSpareThreads="300"
    prestartminSpareThreads="true"
    keystoreFile="${catalina.base}/cert/meusite.p12"
    keystorePass="senhadoarquivopkcs12"
    keystoreType="PKCS12" />
    Ajuste os parâmetros conforme necessidade. Os principais neste caso são:
    port= porta utilizada pelo conector, esta porta será a utilizada no acesso pelo navegador;
    keystoreFile= caminho para o arquivo de chaves e certificados;
    keystorePass= senha do arquivo keystoreFile;
    keystoreType= tipo de armazenamento utilizado no arquivo. Caso utilize um arquivo .jks, mude para JKSApós realizar esta configuração, reinicie o serviço do Tomcat.

    Pelo modelo acima, o acesso ao produto no contexto HTTPS será feito no caminho https://servidor/totvs-menu. Lembrando que o endereço do servidor utilizado na URL deve ser o mesmo utilizado no certificado SSL.

    Caso adquira um certificado para um endereço externo, como por exemplo meusite.com.br, configure seu DNS interno para este nome responder pelo endereço do servidor do Tomcat, assim será possível utilizar o acesso HTTPS por qualquer equipamento dentro de sua rede. Para o acesso externo utilize no DNS o seu IP de internet.

    Quando utilizado um certificado auto assinado, como não foi emitido por uma autoridade certificadora reconhecida, o navegador poderá emitir mensagens de alerta indicando que o certificado não foi validado.

    Estes certificados também precisam ser importados no java utilizado para iniciar o Datasul for THF.
    Caso os certificados não existam no java, podem ser listados erros como este no arquivo de log do Tomcat:


    PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    Com base no exemplo acima, serão importados os arquivos certificate.crt e ca_bundle.crt que foram usados para gerar o arquivo no formato PKCS12. Para importar em ambiente Windows, abra um prompt de comando como administrador, vá até a pasta onde estão os arquivos do certificado e utilize os comandos:

    set JAVA_HOME=C:\totvs\THF\jdk-11
    set PATH=%JAVA_HOME%\bin;%PATH%
    keytool -import -trustcacerts -keystore %JAVA_HOME%\lib\security\cacerts -storepass changeit -noprompt -alias certificado.thf -file certificate.crt
    keytool -import -trustcacerts -keystore %JAVA_HOME%\lib\security\cacerts -storepass changeit -noprompt -alias certificado.ca.thf -file ca_bundle.crt

    Aqui no exemplo a pasta C:\totvs\THF\jdk-11 é o java utilizado pelo Tomcat, ajuste o caminho para o seu ambiente. O nome no parâmetro -alias pode ser modificado conforme preferência.

    Para ambiente Linux o procedimento é o mesmo, somente ajuste nos comandos o formato das variáveis e nomes de pasta:

    export JAVA_HOME=/totvs/THF/jdk-11
    export PATH=$JAVA_HOME/bin:$PATH
    keytool -import -trustcacerts -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit -noprompt -alias certificado.thf -file certificate.crt
    keytool -import -trustcacerts -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit -noprompt -alias certificado.ca.thf -file ca_bundle.crt
    Após importar, caso o serviço do Tomcat esteja ativo, reinicie.

    Saiba mais
    Se deseja publicar o acesso para a internet, antes recomendamos a leitura dos artigos abaixo:
    Framework - Linha Datasul - THF - Recomendação de segurança para as aplicações padrão do Tomcat
    Framework - Linha Datasul - THF - Recomendação de segurança para desabilitar o Connector AJP no Tomcat
    Framework - Linha Datasul - THF - Recomendação de segurança para a porta do SHUTDOWN do Tomcat

    Glossário
    CSR
    - Certificate Signing RequestDNS - Domain Name SystemHTTP - Hypertext Transfer Protocol
    HTTPS - Hyper Text Transfer Protocol Secure
    IP - Internet Protocol
    JKS - Java Keystore
    PKCS - Public-Key Cryptography StandardsSSL - Secure Sockets LayerTHF - TOTVS HTML FrameworkURL - Uniform Resource Locator

Compartilhe esta Página