Índice
Objetivo
O objetivo deste guia é expor os passos necessários para utilização do fluig sobre o protocolo HTTPS.
Pré-requisitos
- Possuir um certificado digital válido;
- Ter um host no DNS configurado para o fluig em um domínio específico.
Obter um certificado válido
Para o certificado ser válido para a internet, este deve ser emitido para um domínio específico (WildCard) ou para um host deste domínio, o que torna obrigatório configurar o fluig com o mesmo domínio do certificado caso deseje o uso de HTTPS (ex: *.suaempresa.com.br).
Se o certificado for vinculado ao fluig e o acesso continuar sendo via IP (e não pelo domínio), constantes mensagens de certificado não confiável serão apresentadas, pois o navegador tentará validar a URL de acesso com o domínio do certificado, retornando erro. |
Caso sua empresa ainda não possua nenhum certificado, o mesmo deve ser adquirido de uma autoridade certificadora. Não é recomendado o uso de certificados self-signed (auto-assinado), já que alguns navegadores não aceitam este tipo de certificado e podem provocar comportamentos inesperados durante a utilização do fluig.
Procedimentos de configuração de SSL
Navegue nos passos abaixo para configuração do SSL no servidor de aplicação:
- Parar os serviços do fluig (fluig, fluig_indexer, fluig_RealTime e cache, caso estiver utilizando cache externo e.g: MemCached ou redis).
|
- No arquivo domain.xml, localizado em [Instalação fluig]/appserver/domain/configuration, incluir a tag <https-listener> no subsystem "undertow". Não deve ser retirado a tag contendo as configurações HTTP.
- Na tag HTTP, acrescente o atributo proxy-address-forwarding="true" conforme mostrado abaixo:
- Caso deseje restringir o tráfego de cookie de sessão em conexões seguras (HTTPS), basta incluir nas configurações do subsystem undertow a tag session-cookie informando o atributo secure ="true". (Opcional)
<subsystem xmlns="urn:jboss:domain:undertow:3.1">
<...>
<server name="default-server">
<http-listener max-post-size="1073741824" name="default" socket-binding="http" proxy-address-forwarding="true"/> <!-- 2- Adicionar nesta linha o atributo -->
<https-listener name="https" secure="true" security-realm="TOTVSTech" socket-binding="https"/> <!-- 1- Incluir esta linha para validação do certificado -->
<...>
</server>
<servlet-container name="default" stack-trace-on-error="local-only">
<...>
<session-cookie http-only="true" secure="true"/> <!-- 3- Incluir esta linha para restringir o tráfego de cookie de sessão -->
</servlet-container>
<...>
</subsystem> |
|
- No arquivo host.xml, localizado em [Instalação fluig]/appserver/domain/configuration, altere o <security-realm name="TOTVSTech"> incluindo as configurações de certificado.
Disponibilizamos as instruções de configuração do repositório de certificados no formato PKCS12 (p12) portanto, siga as instruções abaixo: - Incluir a tag <server-identities></server-identities> juntamente com <ssl> e o <keystore> conforme exemplicado no código abaixo;
- No atributo path, informe o diretório do repositório de certificados (keystore.p12).
- Em key-password e keystore-password, substitua a valor "suasenha" pela senha utilizada na criação do repositório de certificados (keystore).
Em <security-realm name="ApplicationRealm"> também contém as configurações de certificado porém, suas informações não devem ser modificadas, deixando os valores padrões salvos. |
<security-realm name="TOTVSTech">
<server-identities>
<ssl>
<keystore path="certs\fluig.p12" keystore-password="suasenha" key-password="suasenha" relative-to="jboss.domain.config.dir"/>
</ssl>
</server-identities>
<...>
</security-realm> |
O diretório "certs" é relativo ao diretório de configuração do servidor de aplicação, por exemplo, "C:\fluig\appserver\domain\configuration\certs". Dúvidas sobre a utilização do OpenSSL ou sobre os comandos de exportação do PKCS12 (p12), consulte a FAQ Utilizando OpenSSL para configurar HTTPS. |
|
- Iniciar novamente os serviços do fluig em sua ordem correta (cache, caso estiver utilizando cache externo e.g: MemCached ou redis, fluig_indexer, fluig_RealTime e fluig).
- O acesso será realizado via HTTPS, na porta 8443.
|
|
Configuração para utilização do fluig Studio com SSL
A alteração abaixo é necessária para o correto funcionamento do plugin fluig Studio no TOTVS Developer Studio ou Eclipse quando o SSL está habilitado.
- No diretório em que o fluig Studio foi instalado, editar o arquivo eclipse.ini;
- Adicione a linha abaixo no final do arquivo.
-Djsse.enableSNIExtension=false |
|
- Para chamadas de Web Service é importante configurar o arquivo de configuração domain.xml localizado em [Instalação fluig]/appserver/domain/configuration.
- Procurar o trecho abaixo:
...
<subsystem xmlns="urn:jboss:domain:webservices:2.0">
<modify-wsdl-address>true</modify-wsdl-address>
<wsdl-host>10.80.73.203</wsdl-host>
<endpoint-config name="Standard-Endpoint-Config"/>
... |
...
<subsystem xmlns="urn:jboss:domain:webservices:1.2">
<modify-wsdl-address>true</modify-wsdl-address>
<wsdl-host>jbossws.undefined.host</wsdl-host>
<wsdl-uri-scheme>https</wsdl-uri-scheme>
<wsdl-secure-port>443</wsdl-secure-port>
<endpoint-config name="Standard-Endpoint-Config"/>
... |
Alterar a porta da tag "<wsdl-secure-port>443</wsdl-secure-port>" para a porta de acesso utilizada (Portas padrões 443 e 8443). |
|
|
Configurar notificações em tempo real
O serviço responsável pelas notificações em tempo real (entrega de dados do servidor para os clientes) também deve ser preparado para funcionar via HTTPS, quando essa configuração for realizada no fluig.
- Não é permitido utilizar barra invertida ou contra barras "\" para informar os caminhos do certificado e chave privada no arquivo package.json. Caso for utilizada, o serviço de RealTime (Node) não irá subir.
- Caso o certificado possua uma senha na chave informada, é necessário remover a senha. Caso contrário, o Node.js não será iniciado.
- Se o servidor possuir proxy, é necessário liberar as portas do serviço de notificações em tempo real para SSL nesse proxy.
- Caso seu certificado e chave estiverem no formato de repositório de certificados PKCS12 (p12), consulte a FAQ Utilizando OpenSSL para configurar HTTPS para obter os comandos de exportação dos mesmos. Para isso, é preciso que o pacote OpenSSL esteja instalado no servidor.
- Importante mencionar que a linha que contém a porta nas configurações do SSL no arquivo package.json deve ser apagada.
|
Para isso, o arquivo [Instalação node]/fluig.rt/package.json deve ser editado, alterando as seguintes informações abaixo. Em sistemas operacionais Linux, o arquivo package.json fica localizado em [Instalação node]/bin/fluig.rt/.
"ssl" : {
"usessl": true,
"key": "c:/fluig/certificado/server.key",
"cert": "c:/fluig/certificado/server.crt",
"ca": "c:/fluig/certificado/server.crt"
} |
Os atributos devem ser alterados conforme abaixo:
Atributo | Descrição |
usessl | Informar true, para caracterizar a utilização de configuração HTTPS |
key | Informar o caminho do arquivo de chave |
cert | Informar o caminho do arquivo de certificado |
ca | Informar o caminho do arquivo de certificado |
Após a alteração do package.json, o serviço RealTime (Node.js) deve ser reiniciado.
Certificado digital mobile
As plataformas de dispositivos móveis (iOS, Android) possuem limitações com relação aos certificados digitais. Por padrão, apenas o certificados homologados por elas são reconhecidos como confiáveis.
Para evitar a aquisição de certificados não homologados, é preciso consultar a documentação técnica de cada plataforma sobre a lista de certificados reconhecidos como confiáveis:
A lista de certificados confiáveis para o iOS 9 e 10 está disponível aqui.
|
É necessário verificar no aparelho em: Configurações > Segurança > Credenciais Confiáveis Na Aba Sistema existe a lista de certificados confiáveis para aquela versão do Android. Cada versão do Android pode ter uma lista de certificados confiáveis diferente. |
|
A lista de certificados confiáveis para o Windows Phone 8 está disponível aqui.
|
|
Em caso de dúvidas, procure a unidade certificadora para assegurar que seu certificado é homologado pelas plataformas mencionadas acima.
URL do portal
Após configurar o HTTPS na instalação do fluig, é necessário ajustar a URL do portal com o novo protocolo.
Para isto, deve-se acessar a plataforma com o wcmadmin, abrir o Painel de controle → aba WCM → Configurações do Sistema.
Na aba Portal, definir no campo URL do portal do fluig, agora com o "https".
Caso não esteja utilizando um web server, é necessário informar a porta de acesso da URL. Exemplo: https://[host]:[porta]/portal.
Para acessar o fluig com HTTPS através do fluig Mobile, basta adicionar uma conta com a nova URL do portal no aplicativo. |
Informar a URL de acesso ao portal utilizando o protocolo https no início do endereço