Este guia mostra como instalar um certificado SSL/TLS no Pound, o leve proxy reverso HTTP/HTTPS. Ele abrange a parte que mais confunde os operadores: criar o arquivo PEM único combinado que o Pound espera, na ordem correta, e depois escrever um bloco ListenHTTPS funcional que desativa protocolos obsoletos, aponta o Pound para um backend e passa por uma verificação de configuração antes de você reiniciar o serviço.
Uma nota rápida sobre qual Pound este guia tem como alvo. O projeto original Apsis Pound foi descontinuado em setembro de 2022. O desenvolvimento ativo foi transferido para o fork mantido por Sergey Poznyakoff em github.com/graygnuorg/pound, que agora é o repositório canônico e a versão empacotada pelas distribuições Linux atuais. As diretivas abaixo correspondem à série moderna 4.x.
Gerar o CSR para o Pound
Se você já gerou seu CSR e tem em mãos os arquivos do certificado emitido, avance para Instalar o certificado SSL no Pound.
Antes que uma Autoridade Certificadora possa emitir seu certificado, você precisa enviar um CSR (Certificate Signing Request): um pequeno bloco de texto que contém os detalhes do seu domínio e uma chave pública, emparelhado com uma chave privada que permanece no servidor. Você tem duas opções:
- Gerar o CSR automaticamente com nosso CSR Generator. A ferramenta retorna tanto o CSR quanto a chave privada correspondente, que você então move para o servidor.
- Gerar o CSR no próprio servidor com o OpenSSL seguindo nosso tutorial sobre como gerar um CSR no Pound. A chave privada permanece no servidor.
Ao solicitar o certificado, cole o bloco completo do CSR, incluindo as linhas —–BEGIN CERTIFICATE REQUEST—– e —–END CERTIFICATE REQUEST—–. Se quiser confirmar o conteúdo do CSR antes de enviá-lo, cole-o em nosso decodificador de CSR. Mantenha o arquivo de chave privada correspondente (geralmente yourdomain.key) em um local seguro e legível apenas pelo root; você precisará dele durante a instalação.
Instalar o certificado SSL no Pound
Depois que a CA emitir o certificado, você normalmente receberá:
- Seu certificado primário (do servidor), geralmente um arquivo .crt ou .pem nomeado a partir do seu domínio.
- Um ou mais certificados intermediários, seja como arquivos separados ou agrupados em um único arquivo .ca-bundle.
- A chave privada (um arquivo .key) que foi gerada junto com o seu CSR.
O Pound espera um único arquivo PEM que contenha o certificado, a cadeia intermediária e a chave privada não criptografada. O manual do graygnuorg é explícito sobre a ordem: certificado, depois os certificados intermediários (se houver), depois a chave privada, nessa ordem. Pular a cadeia é o erro de instalação mais comum: o certificado parece correto em um navegador de desktop, mas falha no Android, no iOS e em clientes de linha de comando.
Passo 1: Criar o arquivo PEM combinado
Este guia presume que os arquivos do certificado estão armazenados em /etc/pound/. Ajuste os caminhos conforme sua estrutura. Concatene os três arquivos em um único arquivo PEM. O padrão pipe-para-tee abaixo executa o redirecionamento com privilégios de root, o que é necessário porque /etc/pound/ geralmente só é gravável pelo root (um simples sudo cat … > /etc/pound/… falharia, já que o shell abre o arquivo de saída como seu usuário normal antes mesmo de o sudo ser executado):
cat your_domain.crt intermediate.crt your_domain.key | sudo tee /etc/pound/your_domain.pem > /dev/null
Se a CA forneceu os intermediários como um único arquivo .ca-bundle, use-o em vez disso:
cat your_domain.crt your_domain.ca-bundle your_domain.key | sudo tee /etc/pound/your_domain.pem > /dev/null
Substitua os nomes dos arquivos pelos seus. A chave privada dentro do arquivo combinado deve estar não criptografada, já que o Pound é iniciado de forma não interativa e não pode solicitar uma frase-senha. Restrinja o arquivo resultante para que somente o root possa lê-lo:
sudo chown root:root /etc/pound/your_domain.pem
sudo chmod 600 /etc/pound/your_domain.pem
Passo 2: Editar o pound.cfg
Abra o arquivo de configuração do Pound (comumente /etc/pound/pound.cfg no Debian e Ubuntu, ou /etc/pound.cfg em algumas outras distribuições) e adicione um bloco ListenHTTPS que aponte para o arquivo PEM combinado. Um bloco moderno mínimo se parece com isto:
ListenHTTPS
Address 0.0.0.0
Port 443
Cert "/etc/pound/your_domain.pem"
# Modern TLS only: disables SSLv2, SSLv3, TLSv1.0 and TLSv1.1,
# leaving TLSv1.2 and TLSv1.3 enabled.
Disable TLSv1_1
Ciphers "ECDHE+AESGCM:ECDHE+CHACHA20:!aNULL:!MD5:!DSS"
Service
Backend
Address 127.0.0.1
Port 8080
End
End
End
Algumas observações sobre as diretivas acima:
- Cert fornece o arquivo PEM combinado que você criou no Passo 1. O manual deixa claro que Cert deve preceder todas as outras diretivas específicas de SSL dentro do listener, então mantenha-o no topo do bloco.
- Disable desativa o protocolo indicado e todo protocolo mais antigo do que ele. Disable TLSv1_1, portanto, desativa SSLv2, SSLv3, TLSv1.0 e TLSv1.1, deixando o TLSv1.2 e o TLSv1.3 ativos, o que está de acordo com as orientações atuais do setor.
- Ciphers define a lista de cifras do OpenSSL (usada para TLS 1.2; o TLS 1.3 negocia seu próprio conjunto de cifras). A lista acima restringe o proxy a conjuntos ECDHE modernos com AEAD; se precisar dar suporte a clientes mais antigos, use o perfil “intermediate” da Mozilla em ssl-config.mozilla.org.
- Service / Backend é onde o Pound faz o proxy do tráfego descriptografado. O exemplo encaminha para um único backend na interface de loopback (porta 8080); substitua o endereço e a porta pelo que sua aplicação estiver ouvindo, e adicione mais blocos Backend se quiser que o Pound faça balanceamento de carga.
Se você também quiser que o Pound aceite HTTP puro e o encaminhe (normalmente apenas para redirecionar para HTTPS, veja o Passo 4), adicione um bloco ListenHTTP separado no mesmo arquivo.
Passo 3: Verificar a configuração e reiniciar o Pound
Antes de recarregar o serviço, valide o arquivo de configuração para que um erro de digitação não derrube o proxy. O Pound tem um modo de verificação embutido:
sudo pound -c -f /etc/pound/pound.cfg
Ele sai com status 0 e não imprime nada em caso de sucesso, ou status 1 com uma mensagem de erro indicando o arquivo e a linha em caso de falha. Adicione -v se quiser uma confirmação explícita de “configuration OK”. Quando a verificação for aprovada, reinicie o Pound para que ele passe a usar o novo listener:
sudo systemctl restart pound
Em sistemas sem systemd, use o script init mais antigo:
sudo /etc/init.d/pound restart
Confirme que o serviço está em execução e ouvindo na porta 443:
sudo systemctl status pound
sudo ss -tlnp | grep ':443'
Passo 4 (recomendado): Redirecionar HTTP para HTTPS
Para garantir que os visitantes que digitarem o domínio puro caiam na URL segura, adicione um listener HTTP puro que responda a toda requisição com um redirecionamento permanente para a versão HTTPS do mesmo caminho:
ListenHTTP
Address 0.0.0.0
Port 80
Service
Redirect 301 "https://example.com$1"
End
End
Substitua example.com pelo seu próprio domínio. A referência retroativa $1 preserva o caminho original da requisição. Execute sudo pound -c -f /etc/pound/pound.cfg novamente e, em seguida, reinicie o serviço.
Testar a instalação SSL
Abra seu site via https:// em um navegador e verifique se o cadeado está fechado e se o certificado corresponde ao seu domínio. Em seguida, execute uma verificação mais profunda com nosso SSL Checker para obter um relatório instantâneo sobre o certificado, a cadeia e os protocolos e cifras que o Pound está oferecendo. Um resultado limpo ali significa que os clientes em todas as principais plataformas, incluindo clientes móveis e de API, confiarão no certificado.
Perguntas Frequentes
O projeto original da Apsis foi abandonado em 2022. O fork ativamente mantido é o graygnuorg/pound de Sergey Poznyakoff, atualmente na série 4.x, e é o que as principais distribuições Linux empacotam como pound. Se você estiver executando algo da antiga linha 2.x, planeje migrar para uma versão atual: as diretivas de configuração deste guia presumem o fork moderno.
Conforme o manual do Pound: primeiro o certificado do servidor, depois os certificados intermediários (se houver) e, por fim, a chave privada, tudo codificado em PEM, em um único arquivo. A chave privada não pode estar protegida por frase-senha, pois o Pound é iniciado como um daemon e não tem como solicitar uma.
Use a diretiva Disable dentro do bloco ListenHTTPS. O Disable do Pound desativa o protocolo indicado e todo protocolo mais antigo do que ele, então Disable TLSv1_1 desativa SSLv2, SSLv3, TLSv1.0 e TLSv1.1, deixando apenas o TLSv1.2 e o TLSv1.3. Essa é a configuração recomendada para novas implantações.
Sim. O Pound oferece suporte a SNI, então você pode declarar várias instruções Cert dentro do mesmo listener ListenHTTPS (ou apontar Cert para um diretório de arquivos PEM). O Pound percorre os certificados em ordem e usa o primeiro cujo Nome Comum ou SAN corresponda ao nome de host solicitado, então liste certificados mais específicos (nomes de host) antes dos curinga.
Execute sudo pound -c -f /etc/pound/pound.cfg. A flag -c verifica o arquivo de configuração em busca de erros de sintaxe e encerra sem iniciar o proxy; status de saída 0 significa OK, status 1 significa que há um erro (a mensagem informa qual arquivo e linha). Adicione -v para uma mensagem explícita de sucesso.
A partir de 15 de março de 2026, os certificados SSL/TLS de confiança pública terão validade máxima de 200 dias, e o CA/Browser Forum já programou novas reduções (para 100 dias em 2027 e 47 dias em 2029). Planeje repetir a instalação acima bem antes de cada expiração, ou automatize as renovações com ACME.
Economize 10% em certificados SSL ao fazer seu pedido hoje!
Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10


