Skip to content
Mobius One edited this page Mar 29, 2026 · 4 revisions

Configurar HTTPS Externamente

Home > Configurar HTTPS no RAL > Configurar HTTPS Externamente

Iremos mostrar abaixo como configurar HTTPS na máquina servidora usando NGINX:

Instalação do NGINX:

Windows

Baixe a versão mais recente do NGINX Aqui

NGINX é uma aplicação console no Windows e precisa ser acessada via linha de comando, seja cmd ou powershell

Após baixar e descompactar a última versão do NGINX, acesse o cmd ou powershell no endereço onde o executável nginx.exe se encontra e inicie o serviço com nginx start ou clique 2x no nginx.exe

Confirme que ele esteja rodando acessando o gerenciador de tarefas ou pelo comando

C:\nginx-1.25.2>tasklist /fi "imagename eq nginx.exe"

Image Name           PID Session Name     Session#    Mem Usage
=============== ======== ============== ========== ============
nginx.exe            652 Console                 0      2 780 K
nginx.exe           1332 Console                 0      3 112 K

Pronto! o NGINX está instalado e rodando com sucesso na porta 80, basta acessar o navegador e digitar o endereço do seu servidor para ver a resposta:

Maiores informações sobre windows você encontra no link oficial da ferramenta.

Instalação no Linux

siga as orientações da página oficial aqui

Configuração do NGINX para HTTPS

Primeiramente precisamos do certificado, se você ainda não possui um, siga estas instruções para gerar o certificado. Caso já possua, identifique onde está seu certificado e a chave privada.

Em seguida precisamos modificar o arquivo nginx.conf com as instruções do certificado https para que ele consiga conversar via HTTPS:

localize no seu arquivo a seção comentada #HTTPS server caso não exista, crie uma seção com as seguintes configurações:

server {
  listen       443 ssl;
  server_name  localhost;

  ssl_certificate      /cert/cert.pem;
  ssl_certificate_key  /cert/privkey.pem;
  ssl_protocols TLSv1.2 TLSv1.3;

  location / {
    root   html;
    index  indexssl.html index.htm;
   }
}
  • listen: é a porta que vai ser atribuída ao NGINX, caso seja uma conexão segura (HTTPS) tem que inserir os dizeres ssl após a porta.
  • server_name: é o nome do servidor
  • ssl_certificate: é o caminho da localização do certificado ⚠No windows o caminho / é tratado como C:/ então o comando acima é traduzido para C:/cert/cert.pem no windows.
  • ssl_certificate_key: é o caminho da localização da chave privada do seu certificado
  • ssl_protocols: é um comando opcional para limitar os protocolos que seu servidor aceitará. Recomendável TLS 1.2 e TLS 1.3, os outros já foram descontinuados.
  • location: é o objeto que referencia o chamado enviado ao servidor. no caso do exemplo, significa que toda requisição que bater no servidor/ vai ser reencaminhada para a pasta raiz (root) com o comando index ou /index respondendo os arquivos separados por espaço

⚠ Caso o nginx já esteja rodando, execute o comando nginx -s reload para aplicar as novas configurações.

Agora que seu servidor está configurado, faça o teste no navegador e veja se ele responde em HTTPS, se tiver tudo certo só seguir o próximo passo

Configurar proxy-pass para servidor RAL

Agora que você aprendeu a configurar o NGINX e aprendeu a configurar o HTTPS, só precisa de um último detalhe, que é o redirecionamento, onde você vai montar seu servidor RAL sem https e fazer com que toda requisição que chegue no NGINX seja reencaminhada para o servidor RAL interno.

Para isso basta modificar o arquivo nginx.conf adicionando as seguintes informações:

upstream ServerSSL {
  server 127.0.0.1:8000;
}

  server {
    listen       9000 ssl;
    server_name  localhost;
    
    ssl_certificate      /cert/cert.pem;
    ssl_certificate_key  /cert/privkey.pem;
    ssl_protocols        TLSv1.2 TLSv1.3;
    
    location / {
      proxy_pass http://ServerSSL;
    }
  }

onde:

  • upstream ServerSSL: o nome aqui ServerSSL pode ser qualquer coisa, é a variável que vai indicar o redirecionamento.
  • server 127.0.0.1:8000: aqui é indicado o IP da máquina local 127.0.0.1 pra representar que seu servidor RAL está instalado na mesma máquina do NGINX e rodando na porta 8000, essa é a instrução que vai informar a ele pra redirecionar pra esse endereço.

Dentro das configurações do server {:

As configurações são praticamente as mesmas do HTTPS, com uma diferença importante no location / que é o proxy_pass que vai redirecionar todas as requisições que baterem no / para a varíavel ServerSSL definida anteriormente no upstream.

Exemplo de configuração completa

Aqui vai um exemplo completo de um arquivo nginx.conf configurado para ouvir HTTPS sem HTTP e redirecionar com proxy-pass para o RAL:

worker_processes auto;
#linux
error_log /var/log/nginx/error.log;
include /etc/nginx/modules-enabled/*.conf;

# Windows
# no windows se mantiver a barra / ele vai tentar puxar caminho relativo referente à pasta de instalação
error_log /log/error.log; #salva os logs de erro na pasta nginx/logs/error.log
include /confs/modules-enabled/*.conf; # adiciona todos os arquivos *.conf na pasta nginx/confs/modules-enabled

events {
  worker_connections 1024; # define a quantidade de threads para processar as requisições
}

# o coração do NGINX
http {

  server {
    listen 80;      # IPv4 
    listen [::]:80; # IPv6
    
    server_name         # aqui você lista os DNSs que você possui para que eles sejam interceptados pelo NGINX
      meudns.com.br
      www.meudns.com.br
      ~^\.meudns.com.br      # regex para que qualquer subdomínio do domínio meudns.com.br também seja interceptado
      ~^[^.]+\.meudns.com.br # regex para subdomínio com ponto .
    ;

# toda requisição HTTP é convertida pra HTTPS e redirecionada pro próprio NGINX no comando $host
    return 301 https://$host$request_uri;
  }

# aqui vamos definir a configuração com apelido do nosso servidor
# você inclusive pode setar load-balance aqui
  upstream ServerRAL {
    server 192.168.0.1:8000; # defina o IP e porta do seu servidor RAL, você pode mudar o apelido se quiser
    server 192.168.0.2:8000; # caso possua mais de 1 servidor, faz balanceamento de carga
  }

# opcional, definir outra aplicação em outra porta
  upstream APIServerRAL {
    server 192.168.0.1:8001; # defina o IP e porta do seu servidor RAL, você pode mudar o apelido se quiser
    server 192.168.0.2:8001; # caso possua mais de 1 servidor, faz balanceamento de carga
  }

  # Com essa configuração aqui você vai permitir qualquer requisição HTTPS no seu servidor quando a porta não tá definida
  server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name
      meudns.com.br
      www.meudns.com.br
      ~^\.meudns.com.br      # regex para que qualquer subdomínio do domínio meudns.com.br também seja interceptado
      ~^[^.]+\.meudns.com.br # regex para subdomínio com ponto .
    ;

    # linux
    ssl_certificate /etc/letsencrypt/live/meudns.com.br/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/meudns.com.br/privkey.pem;

    # windows
#    ssl_certificate C:\\cert\\letsencrypt\\live\\meudns.com.br\\fullchain.pem;
#    ssl_certificate_key C:\\cert\\letsencrypt\\live\\meudns.com.br\\privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;

    location / {
      proxy_pass http://ServerRAL;
    }
  } 

# Se você quiser um servidor com um subdomínio específico, tipo api.meudns.com essa é a configuração para ele:
# lembre de remover os comentários ## para que o código passe a funcionar
#  server {
#    listen 8001 ssl;
#    listen [::]:8001 ssl;
#
#    server_name
#      api.meudns.com
#    ;
#
#    # linux
#    ssl_certificate /etc/letsencrypt/live/meudns.com.br/fullchain.pem;
#    ssl_certificate_key /etc/letsencrypt/live/meudns.com.br/privkey.pem;
#
#    location / {
#      proxy_pass http://APIServerRAL;
#    }
#  }

}

Clone this wiki locally