Configuração de Domínios Internos com HTTPS no Nginx

Domínio Interno + HTTPS (Evitando Avisos de Segurança)

É possível configurar HTTPS para domínios internos usando certificados autoassinados vinculados ao nome do domínio interno. Veja como fazer:

Passo 1: Gerar Certificado Autoassinado

Use o OpenSSL para gerar um certificado com o Common Name (CN)指向 seu domínio interno (por exemplo, empresa.local):

# 1. Gerar chave privada
openssl genrsa -out servidor-interno.key 2048

# 2. Gerar CSR (Common Name deve ser o domínio interno)
openssl req -new -key servidor-interno.key -out servidor-interno.csr
# Ao preencher as informações DN, o campo Common Name deve ser: empresa.local

# 3. Gerar certificado autoassinado (válido por 365 dias)
openssl x509 -req -days 365 -in servidor-interno.csr -signkey servidor-interno.key -out servidor-interno.crt

Passo 2: Configurar o Certificado no Servidor

Implante os arquivos servidor-interno.key (chave privada) e servidor-interno.crt (certificado) no seu servidor web:

Exemplo de configuração no Nginx:

server {
    listen 443 ssl;
    server_name empresa.local;
    
    ssl_certificate /etc/ssl/certs/servidor-interno.crt;
    ssl_certificate_key /etc/ssl/private/servidor-interno.key;
    
    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

Passo 3: Confiar no Certificado nos Clientes

Certificados autoassinados não são confiáveis por padrão. Cada dispositivo deve instalar o certificado manualmente:

  • Windows: Clique duas vezes no arquivo .crt → "Instalar Certificado" → Escolha "Usuário Atual" ou "Computador Local" → Selecione "Autoridades de Certificação Raiz Confiáveis" → Conclua.
  • macOS: Clique duas vezes no certificado → Abra "Acesso às Chaves" → Selecione "Sistema" → Clique com botão direito no certificado → "Obter Informações" → Em "Confiança", selecione "Sempre Confiar".
  • Dispositivos Móveis: Transmita o arquivo para o dispositivo e instale (iOS: Configurações → Geral → Gerenciamento de VPN e Dispositivo; Android: Configurações → Segurança → Certificados → Instalar).

Após confiar no certificado, o acesso a https://empresa.local mostrará o ícone de segurança.

Resolução de Problemas

  1. Domínio não resolve (ping retorna "host não encontrado"):
    • Verifique se o arquivo hosts está correto (sem espaços extras, IP alinhado com o domínio);
    • Em cenários com múltiplos dispositivos, confirme que o DNS está apontando para o servidor DNS interno;
    • Limpe o cache DNS: No Windows, execute ipconfig /flushdns; No Mac/Linux, use sudo dscacheutil -flushcache.
  2. Aviso de "certificado não confiável":
    • Verifique se o CN ou SAN do certificado corresponde ao domínio acessado;
    • Confirme se o cliente já confia no certificado;
    • Para domínios curingas (como *.empresa.local), o CN deve ser *.empresa.local.
  3. Comuniacção entre dispositivos falha:
    • Certifique-se de que todos os dispositivos estão na mesma rede (mesma subnet, como 192.168.1.x);
    • Desative o firewall ou abra as portas necessárias (443, 8443);
    • No servidor, verifique se o serviço está escutando no IP interno (não apenas em 127.0.0.1).

Resumo

A cnofiguração de domínios internos envolve essencialmente "resolução local + certificado autoassinado":

  • Poucos dispositivos: Use o arquivo hosts para vincular domínio ao IP - simples e eficiente;
  • Múltiplos dispositivos/domínios: Configure um servidor DNS interno (roteador/Dnsmasq/Pi-hole) para gestão centralizada;
  • Precisa de HTTPS: Gere um certificado autoassinado vinculado ao domínio interno e configure confiança nos clientes.

Seguindo esse processo, você pode usar https://empresa.local em vez de https://192.168.1.100:8443, tornando o acesso mais memorável e seguro.

Tags: nginx HTTPS ssl certificado-autoassinado rede-interna

Publicado em 6-13 20:56 por Thomas