{ "meta": { "title": "HTTPS para ProxMenux Monitor — certificado do anfitrião Proxmox ou caminhos personalizados | ProxMenux", "description": "Disponibilize o ProxMenux Monitor por HTTPS com o certificado do anfitrião Proxmox (detetado automaticamente, incluindo Let’s Encrypt instalado pelo ACME do Proxmox) ou um certificado personalizado em qualquer caminho do disco.", "ogTitle": "HTTPS para ProxMenux Monitor — Host Proxmox ou certificado personalizado", "ogDescription": "Habilite o HTTPS na porta 8008 com o certificado de host Proxmox ou qualquer par personalizado .pem / .key." }, "header": { "title": "HTTPS para ProxMenux Monitor", "description": "Ative HTTPS para o Monitor na porta 8008 com o certificado do anfitrião Proxmox detetado automaticamente ou um certificado personalizado no disco. A opção Proxmox prefere o certificado ACME, se existir, e reutiliza Let’s Encrypt gerido pelo Proxmox sem outra tarefa de renovação.", "section": "Segurança" }, "intro": { "title": "O que esta página cobre", "body": "Como mudar o Monitor de HTTP para HTTPS no painel Configurações → Painel de segurança, o que cada fonte de certificado realmente aponta no disco, como a opção Proxmox se comporta quando o host tem um certificado Let's Encrypt, e como definir caminhos personalizados se você gerenciar certs fora do Proxmox." }, "wheresetting": { "heading": "Onde se encontra a configuração", "body": "Abra o Monitor e vá a Configurações → Segurança → HTTPS / SSL. O painel mostra HTTP ou HTTPS e, se HTTPS ainda estiver desativado, as fontes de certificados detetadas.", "imageAlt": "Configurações → Segurança → Painel HTTPS / SSL no Monitor mostrando o estado HTTPS-off, o certificado Proxmox auto-detectado (sujeito, emissor, expiração) e a opção Use Custom Certificate", "caption": "Painel Configurações → Segurança → HTTPS / SSL antes da ativação. O Monitor mostra o certificado utilizado pelo Proxmox e permite escolhê-lo com um clique." }, "twoways": { "heading": "Duas maneiras de ativar o HTTPS", "proxmox": { "title": "Usar certificado Proxmox", "summary": "Um clique: o Monitor reutiliza o certificado apresentado pelo Proxmox VE na porta 8006.", "items": [ "Detetado automaticamente, sem introduzir caminhos", "Prefere o certificado ACME, se existir; caso contrário usa o certificado autoassinado predefinido", "O Proxmox renova; o Monitor valida e carrega o certificado na próxima nova ligação TLS" ] }, "custom": { "title": "Usar certificado personalizado", "summaryRich": "Aponte o monitor em um par .pem / .key em qualquer lugar no disco.", "items": [ "Apenas caminhos absolutos (o processo Monitor deve ser capaz de ler ambos)", "Útil para certificados de certbot, acme.sh ou certificados wildcard", "A renovação fica a seu cargo: reinicie o Monitor quando os ficheiros mudarem" ] } }, "proxmoxCert": { "heading": "Certificado Proxmox — o que ele realmente aponta", "intro": "Proxmox VE mantém dois pares de certificados em /etc/pve/local/:", "table": { "headers": { "file": "Arquivo", "origin": "Origem", "when": "Quando o Monitor o usa" }, "rows": [ { "fileRich": "pveproxy-ssl.pem
pveproxy-ssl.key", "originRich": "Certificado personalizado carregado através da UI Proxmox — incluindo o certificado Let's Encrypt emitido sob Datacenter → Node → Certificados → ACME.", "when": "Preferido quando ambos os ficheiros existem; o Monitor utiliza o certificado apresentado pelo Proxmox." }, { "fileRich": "pve-ssl.pem
pve-ssl.key", "originRich": "Certificado autoassinado gerado no momento da instalação pelo Proxmox PKI.", "whenRich": "Alternativa quando não existe pveproxy-ssl.pem." } ] }, "callout": { "title": "A mesma prioridade que o próprio Proxmox", "bodyRich": "pveproxy aplica a mesma seleção. Com a opção Proxmox, o Monitor utiliza o certificado apresentado pela interface Proxmox em 8006, sem cópias nem processo de renovação separado." } }, "letsencrypt": { "heading": "Obtendo um certificado Let's Encrypt via Proxmox ACME", "intro": "O Proxmox VE inclui o seu cliente ACME. «Order Certificate Now» guarda o resultado em /etc/pve/local/pveproxy-ssl.pem, que o Monitor lê. Os cinco passos seguintes resumem o guia oficial do Proxmox nos comandos necessários.", "prereqs": { "title": "Pré-requisitos", "items": [ "O nó tem um verdadeiro nome DNS (não apenas um IP) apontando para ele.", "Ou porta 80 acessível a partir da Internet (validação HTTP-01, a mais simples), ou fornecedor DNS com credenciais API (DNS-01, funciona atrás de NAT e suporta certificados wildcard).", "Um endereço de email para a conta ACME." ] }, "step1": { "heading": "Etapa 1 — Registo da conta ACME", "introRich": "Substitua o email pelo seu. O nome da conta default é apenas um rótulo — você pode usar qualquer string.", "code": "pvenode acme account register default you@example.com", "afterRich": "A Proxmox pede que você aceite os termos de serviço Let's Encrypt. Depois disso, a conta é persistida em /etc/pve/priv/acme/ e a guia ACME na GUI irá mostrá-la." }, "step2": { "heading": "Passo 2 — Escolha um tipo de desafio", "http01Rich": "HTTP-01 é o mais fácil: é embutido, sem plugin extra. O Let's Encrypt conecta-se ao http://<your-host>/.well-known/acme-challenge/... na porta 80, então a porta 80 deve estar aberta da internet pública ao seu nó — normalmente uma porta para frente no seu roteador.", "dns01Rich": "DNS-01 funciona sem expor o porto 80 (bom para homelabs atrás do CG-NAT) e é a única opção para certificados wildcard. Você adiciona um plugin DNS uma vez com o token API do seu provedor. Exemplo Cloudflare:", "code": "pvenode acme plugin add dns cf \\\n --api cloudflare \\\n --data CF_Token=YOUR_CLOUDFLARE_API_TOKEN", "outroRich": "Para outros fornecedores (Gandi, OVH, AWS Route 53, etc.), consulte pvenode acme plugin add dns --help. O Proxmox inclui todos os plugins DNS do acme.sh." }, "step3": { "heading": "Passo 3 — Ligar o domínio ao seu nó", "http01Rich": "Para o HTTP-01 (usa o plug- in incorporado do standalone):", "code1": "pvenode config set --acme domains=host.example.com,account=default", "dns01": "Para DNS-01 com o plugin Cloudflare do Passo 2:", "code2": "pvenode config set --acmedomain0 domain=host.example.com,plugin=cf\npvenode config set --acme account=default", "wildcardRich": "Wildcard? Adicionar domain=*.example.com em uma entrada separada --acmedomainN. Wildcards requerem DNS-01." }, "step4": { "heading": "Passo 4 — Ordenar o certificado", "code": "pvenode acme cert order", "afterRich": "A primeira execução normalmente leva 30–60 segundos enquanto o desafio se propaga. No sucesso Proxmox escreve /etc/pve/local/pveproxy-ssl.pem + .key, reinicia pveproxy, e um cron de renovação é agendado automaticamente (Let's Encrypt certs são válidos 90 dias; Proxmox renova em 60)." }, "step5": { "heading": "Etapa 5 — Verificar o emitente", "code": "openssl x509 -in /etc/pve/local/pveproxy-ssl.pem -noout -issuer", "afterRich": "Deve imprimir um emissor começando com O = Let's Encrypt. Se em vez disso ele lê CN = Proxmox Virtual Environment a ordem falhou e o arquivo ainda é o certificado PVE auto-assinado — re-executar pvenode acme cert order --debug 1 para ver porquê." }, "gui": { "title": "Preferes a GUI? Os mesmos cinco passos", "bodyRich": "Datacenter → ACME regista a conta; Datacenter → ACME → Plugins adiciona o plugin DNS; Node → Certificates → ACME associa o domínio; Order Certificates Now executa o passo 4. Os comandos anteriores são úteis para scripts e sistemas sem interface gráfica." } }, "switchToHttps": { "heading": "Mudar o monitor para HTTPS", "bodyRich": "Quando /etc/pve/local/pveproxy-ssl.pem estiver assinado por Let's Encrypt, abra Configurações → Segurança → HTTPS / SSL, confirme que o emissor é Let's Encrypt e não a CA local Proxmox, e clique em Usar certificado Proxmox. O Monitor reinicia e o próximo carregamento utiliza HTTPS em 8008 com uma cadeia de confiança pública. As renovações ACME seguintes são validadas e selecionadas na próxima nova ligação TLS, sem consultas periódicas nem reinício por renovação. Atualizar certificado continua disponível em Segurança para diagnóstico e recuperação." }, "custom": { "heading": "Certificado personalizado — quando usá-lo", "intro": "Clique em Usar certificado personalizado e introduza dois caminhos absolutos:", "items": [ "Certificado — cadeia completa em PEM (.pem ou .crt).", "Chave privada: chave correspondente em PEM (.key)." ], "outro": "Ambos os arquivos são lidos pelo processo Monitor na inicialização. Certifique-se de que eles permanecem legíveis pelo usuário que a unidade systemd executa como (root por padrão). Locais comuns quando o ACME é administrado fora do Proxmox:", "code": "# certbot\n/etc/letsencrypt/live//fullchain.pem\n/etc/letsencrypt/live//privkey.pem\n\n# acme.sh\n~/.acme.sh/_ecc/fullchain.cer\n~/.acme.sh/_ecc/.key", "symlinkCallout": { "title": "Alvos do Symlink vs. arquivos", "bodyRich": "certbot armazena os arquivos reais em /etc/letsencrypt/archive/ e o caminho live/ é um link simbólico. Aponte o Monitor no link simbólico live/, não no arquivo archive/ — dessa forma cada ciclo de renovação simplesmente reescreve o alvo do link simbólico e o Monitor capta o novo certificado no próximo início do serviço." } }, "afterHttps": { "heading": "Após activar o HTTPS", "bodyRich": "Salvar a mudança escreve /etc/proxmenux/ssl_config.json e ativa um reinício da unidade proxmenux-monitor systemd. A guia do navegador perderá sua conexão atual — recarregue-a no https://<host>:8008/. A primeira carga com um certificado Let's Encrypt não deve mostrar nenhum aviso; com o certificado auto-assinado Proxmox o navegador exigirá uma exceção, a mesma que para porta 8006.", "reverse": { "heading": "Proxies inversos e webhooks", "bodyRich": "Quando o Monitor muda para HTTPS, as URLs Proxmox VE webhook registradas para notificações também passam de http:// para https:// automaticamente. Entradas webhook existentes são reescritas da próxima vez que uma regra de notificação for salva ou redetectada, então nenhuma edição manual da configuração de notificação Proxmox é necessária." } }, "trustCa": { "heading": "Confiar na CA autoassinada do Proxmox", "intro1Rich": "Para manter o certificado Proxmox predefinido sem ACME, importe a CA raiz do cluster para o repositório de confiança do sistema ou do navegador. O Monitor deteta /etc/pve/local/pve-ssl.pem como certificado de recurso. O cliente passa a confiar no emissor; o URL tem ainda de corresponder a um nome do certificado.", "intro2Rich": "O arquivo CA vive em /etc/pve/pve-root-ca.pem em cada nó. Em um cluster, o caminho está no sistema de arquivos pmxcfs compartilhado, então todos os nós compartilham a mesma raiz, e uma única importação cobre todo o datacenter. Copie para a sua máquina:", "code": "scp root@:/etc/pve/pve-root-ca.pem ./pve-root-ca.pem", "thenImport": "Depois importa-o do lado do cliente:", "items": [ "Linux (todo o sistema): execute sudo cp pve-root-ca.pem /usr/local/share/ca-certificates/pve-root-ca.crt e depois sudo update-ca-certificates. Os navegadores que utilizam o repositório de certificados do sistema (Chromium, Edge) reconhecem a CA após reiniciar; Firefox usa um repositório próprio e requer a importação manual abaixo.", "macOS: abra o ficheiro .pem com duplo clique no Acesso a Porta-chaves, adicione-o ao porta-chaves Sistema e defina Confiança → Confiar sempre.", "Windows: clique com o botão direito no ficheiro → Instalar certificado → coloque-o em Autoridades de certificação de raiz fidedigna.", "Firefox (qualquer SO): Configurações → Privacidade e segurança → Certificados → Ver certificados → Autoridades → Importar; selecione Confiar nesta CA para identificar sites." ], "standalone": { "title": "Nós autônomos fora de um cluster", "bodyRich": "Cada host Proxmox não-aglomerado tem seu próprio pve-root-ca.pem. Se você gerenciar vários hosts autônomos, repita a cópia/importação para cada um, ou junte-os a um cluster para que eles compartilhem uma única raiz." } }, "disable": { "heading": "Desactivando o HTTPS", "bodyRich": "Clique em Desativar HTTPS no mesmo painel. O Monitor reinicia com HTTP sem cifragem, útil se um certificado personalizado ilegível impedir o arranque. Não existe outro passo de desinstalação e os ficheiros de certificados não são alterados.", "stateCallout": { "title": "Onde é guardado o estado", "bodyRich": "/etc/proxmenux/ssl_config.json armazena os caminhos do certificado ativo e a fonte (none, proxmox, custom). Excluir o arquivo é equivalente a desativar o HTTPS — no início seguinte o Monitor cai para o HTTP." } } }