Mudanças entre as edições de "Configuração de SSL"

(→‎Para que Serve)
(→‎Conceito)
Linha 5: Linha 5:
 
A configuração do SSL não precisa necessariamente ser realizada diretamente no serviço da aplicação. É possível utilizar um servidor intermediário responsável por receber as conexões HTTPS e encaminhar as requisições para a aplicação.
 
A configuração do SSL não precisa necessariamente ser realizada diretamente no serviço da aplicação. É possível utilizar um servidor intermediário responsável por receber as conexões HTTPS e encaminhar as requisições para a aplicação.
  
−
Esse componente atua como um '''proxy reverso'''.
+
Esse componente atua como um '''Proxy Reverso'''.
  
 
Um exemplo dessa arquitetura é a utilização do IIS, onde o certificado SSL é configurado no servidor e o IIS recebe as requisições HTTPS, encaminhando posteriormente as solicitações para o serviço da aplicação.
 
Um exemplo dessa arquitetura é a utilização do IIS, onde o certificado SSL é configurado no servidor e o IIS recebe as requisições HTTPS, encaminhando posteriormente as solicitações para o serviço da aplicação.

Edição das 10h43min de 23 de setembro de 2026

Conceito

O SSL/TLS é utilizado para estabelecer uma comunicação segura entre o cliente e o servidor, permitindo que aplicações sejam acessadas através do protocolo HTTPS.

A configuração do SSL não precisa necessariamente ser realizada diretamente no serviço da aplicação. É possível utilizar um servidor intermediário responsável por receber as conexões HTTPS e encaminhar as requisições para a aplicação.

Esse componente atua como um Proxy Reverso.

Um exemplo dessa arquitetura é a utilização do IIS, onde o certificado SSL é configurado no servidor e o IIS recebe as requisições HTTPS, encaminhando posteriormente as solicitações para o serviço da aplicação.

Para que Serve

A utilização de SSL/TLS permite disponibilizar a aplicação por meio do protocolo HTTPS, garantindo uma comunicação segura entre o cliente e o servidor. Nesse cenário, o uso de um proxy reverso permite separar a camada responsável pelo acesso externo da aplicação que é executada internamente no servidor, possibilitando que a aplicação continue utilizando uma porta interna enquanto o acesso externo seja realizado por meio de um endereço HTTPS.

Arquitetura

Considerando uma aplicação executando internamente na porta 8152 e utilizando o IIS como proxy reverso, o fluxo de comunicação será:

                    INTERNET
                        |
                        | HTTPS
                        | Porta 443
                        v
               +-----------------+
               |       IIS       |
               |                 |
               | Certificado SSL |
               | Binding HTTPS   |
               | Proxy Reverso   |
               +--------+--------+
                        |
                        | HTTP interno
                        | Porta 8152
                        v
               +-----------------+
               |    Aplicação    |
               |                 |
               |    Porta 8152   |
               +-----------------+

O cliente acessa somente o endereço externo da aplicação:

https://api.exemplo.com.br

Internamente, o IIS encaminha a requisição para:

http://localhost:8152

A aplicação permanece executando na porta interna configurada para o serviço.

Configuração

A configuração do acesso HTTPS envolve principalmente os seguintes componentes:

  • Domínio utilizado para acesso à aplicação;
  • Certificado SSL/TLS;
  • Binding HTTPS no servidor;
  • Porta utilizada para HTTPS;
  • Configuração do proxy reverso;
  • Endereço e porta interna da aplicação.

No cenário utilizando IIS, o certificado é instalado no servidor e associado ao domínio através do Binding HTTPS.

Exemplo:

Configuração Valor
Tipo HTTPS
Porta 443
Domínio api.exemplo.com.br
Certificado Certificado correspondente ao domínio

Após a configuração do HTTPS, o IIS passa a receber as requisições destinadas ao domínio.

Proxy Reverso

O proxy reverso é responsável por encaminhar as requisições recebidas pelo servidor para a aplicação que está executando internamente.

Por exemplo, quando o cliente acessar:

https://api.exemplo.com.br/clientes

o IIS poderá encaminhar a requisição para:

http://localhost:8152/clientes

Dessa forma, a aplicação não precisa estar diretamente exposta na Internet.

No IIS, o proxy reverso pode ser configurado utilizando recursos como o URL Rewrite e o Application Request Routing (ARR).

Certificado SSL

O certificado SSL/TLS deve ser válido para o domínio utilizado no acesso à aplicação.

Por exemplo, para o endereço:

https://api.exemplo.com.br

o certificado deverá contemplar o domínio utilizado.

O certificado é instalado no servidor responsável pelo recebimento das conexões HTTPS e posteriormente associado ao Binding HTTPS do site.

A aplicação não precisa necessariamente possuir o certificado instalado quando o HTTPS é encerrado no proxy reverso.

Exemplo de configuração

Considerando os seguintes parâmetros:

Item Configuração
Domínio https://api.exemplo.com.br
Porta HTTPS 443
Porta interna 8152
Servidor IIS

A comunicação será realizada da seguinte forma:

Cliente
   |
   | HTTPS :443
   v
IIS
   |
   | Proxy Reverso
   v
Aplicação :8152

Quando o cliente realizar uma requisição:

https://api.exemplo.com.br/pessoas

o IIS receberá a requisição HTTPS e encaminhará internamente:

http://localhost:8152/pessoas

A resposta da aplicação retornará ao IIS, que será responsável por devolvê-la ao cliente através da conexão HTTPS.

Segurança

A porta utilizada pela aplicação internamente, como a 8152, não deve ser disponibilizada diretamente para a Internet quando a aplicação estiver sendo publicada através de um proxy reverso.

O acesso externo deve ser realizado pelo endereço HTTPS configurado no proxy.

Dessa forma, o acesso esperado é:

Cliente
   |
   | HTTPS :443
   v
IIS
   |
   | HTTP interno
   v
Aplicação :8152

A porta interna pode ser protegida através das configurações de firewall e rede do ambiente.

Quando o IIS e a aplicação estão no mesmo servidor, a comunicação entre o proxy e a aplicação pode ocorrer internamente através de HTTP, pois essa comunicação não é realizada diretamente pela Internet.

Caso o proxy reverso e a aplicação estejam em servidores diferentes, deve ser avaliada a necessidade de utilizar HTTPS também na comunicação interna.

Outras soluções

O IIS é apenas uma das soluções que podem ser utilizadas para implementar essa arquitetura.

Também podem ser utilizados outros servidores e ferramentas que possuam suporte a HTTPS e proxy reverso, como:

  • Nginx;
  • Apache;
  • Traefik;
  • Outros gateways ou servidores compatíveis.

Independentemente da tecnologia utilizada, o conceito permanece o mesmo:

Cliente
   |
   | HTTPS
   v
Proxy Reverso
   |
   | Comunicação interna
   v
Aplicação

O componente responsável pelo proxy recebe a conexão HTTPS, utiliza o certificado SSL/TLS configurado e encaminha a requisição para a aplicação.

Certificado

Verificar:

  • Se o certificado corresponde ao domínio;
  • Se o certificado está dentro do prazo de validade;
  • Se a cadeia de certificados está correta;
  • Se o certificado é reconhecido como válido pelo cliente.

HTTPS

Testar o acesso através do endereço configurado:

https://api.exemplo.com.br

Aplicação

Verificar se a aplicação está executando e respondendo na porta interna:

http://localhost:8152

Proxy Reverso

Verificar se as requisições recebidas pelo IIS estão sendo encaminhadas corretamente para a aplicação.

Rede

Verificar se a porta interna utilizada pela aplicação não está exposta desnecessariamente para acesso externo.

Renovação do Certificado

Quando o certificado SSL estiver próximo do vencimento ou precisar ser substituído, a alteração deverá ser realizada no componente responsável pelo HTTPS.

No cenário utilizando IIS:

  1. Obter o novo certificado.
  2. Instalar o certificado no servidor.
  3. Acessar o IIS.
  4. Localizar o Binding HTTPS.
  5. Associar o novo certificado ao domínio.
  6. Salvar a configuração.
  7. Validar o acesso HTTPS.

A aplicação que continua executando na porta interna não precisa necessariamente ser alterada, pois o certificado é utilizado pelo IIS.

Considerações

A configuração do SSL não está necessariamente vinculada à aplicação.

O SSL/TLS pode ser tratado por uma camada de infraestrutura localizada antes da aplicação. Essa camada pode ser o IIS, Nginx, Apache, Traefik ou outra solução equivalente.

A arquitetura pode ser dividida em duas camadas:

Camada externa

Responsável por:

  • Domínio;
  • HTTPS;
  • Certificado SSL/TLS;
  • Porta 443;
  • Controle de acesso;
  • Proxy reverso.

Camada interna

Responsável por:

  • Execução do serviço;
  • Porta da aplicação;
  • Processamento das requisições;
  • Regras de negócio.

No cenário utilizado pela PHSYS, o IIS é um exemplo de componente utilizado para realizar essa separação. A aplicação permanece executando internamente, enquanto o IIS disponibiliza o acesso externo seguro e encaminha as requisições para o serviço.

Conclusão

A utilização de um proxy reverso permite disponibilizar aplicações através de HTTPS sem que o certificado SSL precise necessariamente ser configurado diretamente no serviço da aplicação.

No cenário utilizando IIS, o certificado e o acesso HTTPS ficam sob responsabilidade do IIS, enquanto a aplicação permanece executando internamente em sua própria porta.

Essa arquitetura permite separar a infraestrutura de acesso externo da aplicação, facilitando o gerenciamento de certificados, domínios, HTTPS e regras de acesso.