diff --git a/nginx/sites-available/vcenter.itguys.com.br.conf b/nginx/sites-available/vcenter.itguys.com.br.conf index bb77754..e0bd273 100644 --- a/nginx/sites-available/vcenter.itguys.com.br.conf +++ b/nginx/sites-available/vcenter.itguys.com.br.conf @@ -1,25 +1,23 @@ # ============================================================================== # Arquivo de configuração NGINX para: vcenter.itguys.com.br -# Data da Criação/Modificação: 2025-10-06 11:14 +# Data da Modificação: 2025-10-06 12:00 # # Contexto: -# Este arquivo atua como um reverse proxy seguro para o VMware vCenter Server. -# Ele inclui: -# - Redirecionamento de HTTP para HTTPS. -# - Configurações de SSL/TLS modernas e seguras (nota A+ no SSL Labs). -# - Suporte nativo para WebSockets, essencial para o client HTML5 do vCenter. -# - Cabeçalhos de segurança para mitigar ataques (XSS, Clickjacking). -# - Bloco de cache para arquivos estáticos para otimizar a performance da UI. -# - Regras básicas para bloquear scanners e bots maliciosos. -# - Logs dedicados para monitoramento e integração com Fail2ban. +# Versão final e corrigida. +# - Proxy reverso de HTTPS (cliente) para HTTPS (backend vCenter). +# - Resolve o loop de redirect e o erro 502 Bad Gateway. +# - Inclui diretivas para confiar no certificado auto-assinado do vCenter. +# - Preparado para certificados Let's Encrypt. # ============================================================================== # Define o servidor backend do vCenter para facilitar a manutenção upstream vcenter_backend { + # Aponta para a porta HTTPS do vCenter server 172.16.254.110:443; } # Servidor para redirecionamento de HTTP para HTTPS (Porta 80) +# O Certbot (Let's Encrypt) usará este bloco para validação. server { listen 80; listen [::]:80; @@ -36,59 +34,50 @@ server { server_name vcenter.itguys.com.br; # --- Logs --- - # Arquivos de log exclusivos para este site, facilitando o monitoramento e debug. - access_log /var/log/nginx/vcenter.itguys.com.br.access.log detailed_proxy; + access_log /var/log/nginx/vcenter.itguys.com.br.access.log; error_log /var/log/nginx/vcenter.itguys.com.br.error.log warn; - # --- Configurações de SSL/TLS --- - # Caminhos para os certificados. SUBSTITUA PELOS SEUS CAMINHOS CORRETOS. - # Recomenda-se usar Let's Encrypt / Certbot. + # --- Configurações de SSL/TLS (Let's Encrypt) --- + # O Certbot irá criar e preencher estes caminhos automaticamente. #ssl_certificate /etc/letsencrypt/live/vcenter.itguys.com.br/fullchain.pem; #ssl_certificate_key /etc/letsencrypt/live/vcenter.itguys.com.br/privkey.pem; - - # Otimizações de SSL/TLS baseadas nas melhores práticas (ssllabs.com/research) - ssl_protocols TLSv1.2 TLSv1.3; - ssl_prefer_server_ciphers on; - ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256'; - ssl_session_timeout 1d; - ssl_session_tickets off; - - # OCSP Stapling - Melhora a performance do handshake TLS - ssl_stapling on; - ssl_stapling_verify on; - ssl_trusted_certificate /etc/letsencrypt/live/vcenter.itguys.com.br/chain.pem; # Use o chain.pem para validação + include /etc/letsencrypt/options-ssl-nginx.conf; + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # --- Cabeçalhos de Segurança --- - # Adiciona uma camada extra de proteção no navegador do cliente. - #add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; - #add_header X-Frame-Options "SAMEORIGIN" always; - #add_header X-Content-Type-Options "nosniff" always; - #add_header Referrer-Policy "no-referrer" always; - # CSP pode ser complexo. Este é um ponto de partida. Teste extensivamente. - #add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self' wss:; font-src 'self' data:;" always; + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-Content-Type-Options "nosniff" always; + add_header Referrer-Policy "no-referrer" always; # --- Configurações do Proxy Reverso --- location / { # --- Suporte a WebSocket --- - # Essencial para a funcionalidade do client HTML5 do vCenter. proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # --- Cabeçalhos do Proxy --- - # Encaminha informações essenciais para o backend. proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # --- Timeouts e Buffers --- - # Valores generosos para evitar timeouts em operações longas do vCenter. proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; proxy_buffers 32 4k; - # Aponta o tráfego para o vCenter Server - proxy_pass http://vcenter_backend; + # --- Confiança no Certificado Backend (Auto-assinado) --- + # Aponte para o certificado público do vCenter que extraímos. + #proxy_ssl_trusted_certificate /etc/nginx/ssl/vcenter_backend.pem; + #proxy_ssl_verify on; + + # Resolve o erro 502 Bad Gateway (problema de SNI). + proxy_ssl_server_name on; + proxy_ssl_name vcenter.itguys.com.br; + + # Aponta o tráfego para o vCenter Server via HTTPS. + proxy_pass https://vcenter_backend; } }