Segurança SSL · 6 min read · Sep 24, 2025

Segurando ISPConfig 3.1 Com um Certificado SSL Let's Encrypt Gratuito

IMPORTANTE: Este guia não é compatível com ISPConfig 3.2 e versões mais novas, pois o ISPConfig 3.2 e versões mais novas têm o Let’s Encrypt para todos os serviços embutido. O certificado SSL Let’s Encrypt é configurado automaticamente durante a instalação, portanto, não há necessidade de configurar o Let’s Encrypt para nenhum serviço manualmente.

Autor: ahrasis

Este tutorial mostra como criar e configurar um certificado SSL Let’s Encrypt gratuito para a interface ISPConfig (porta 8080), o sistema de e-mail (Postfix e Dovecot/Courier), o servidor FTP (pure-ftpd) e Monit. Os comandos neste tutorial foram testados no Ubuntu 16.04, eles devem funcionar para Debian também. Certas modificações podem ser necessárias para fazê-lo funcionar no CentOS.

Ajuda sobre este guia está disponível neste tópico do fórum.

Criando Um Site Usando o Nome de Host FQDN do Servidor ISPConfig

Crie um site para seu servidor no painel ISPConfig através de Sites > Website > Adicionar novo site. Lembre-se! Este é o site do seu servidor e, como tal, deve conter o nome de domínio totalmente qualificado (FQDN) do seu servidor. Eu me referirei a ele como hostname -f neste guia.

hostname -f

Esperançosamente, funcionará sem nenhuma alteração no seu servidor também.

Acessando o Site ISPConfig Online

Verifique se o site do seu servidor está pronto e acessível online, pois o Let’s Encrypt precisa verificar se seu site está acessível antes de emitir a chave SSL, o certificado e o arquivo de cadeia para o site do seu servidor. Você também precisa criar sua zona DNS e permitir que ela se propague corretamente, pois o Let’s Encrypt precisa verificar isso também.

Habilitando SSL Para o Painel de Controle ISPConfig 3 (Porta 8080)

Se você não habilitou SSL durante a configuração do ISPConfig, ou seja, para seu painel de controle na porta 8080, habilite digitando ispconfig_update.sh no terminal e selecione sim para SSL. Não precisamos que isso seja uma chave adequada nem queremos mantê-la, mas queremos trabalhar mais rápido, assim podemos simplesmente pressionar Enter para todos os seus campos. Quando você terminar isso, o SSL autoassinado já deve estar habilitado para o seu ISPConfig.

Verificando SSL Para o Painel de Controle ISPConfig 3 (Porta 8080)

Verifique seu navegador para confirmar abrindo o painel de controle do ISPConfig na porta 8080. Note que você pode receber algum aviso nesta fase, pois os arquivos SSL criados são autoassinados, mas o navegador confirmará que seu ISPConfig tem SSL habilitado ou não.

Segurando o Site ISPConfig Com Let’s Encrypt SSL

Se o acima estiver feito, volte para Painel ISPConfig > Sites > Website > Nome do Website, então clique nos botões de verificação SSL e Let’s Encrypt e salve - para criar arquivos SSL Let’s Encrypt e habilitá-los para o seu site do servidor. Se for bem-sucedido, seu site do servidor agora deve estar usando esses arquivos SSL Let’s Encrypt, mas não sua página ISPConfig 8080. Se não for bem-sucedido, você não poderá prosseguir, então verifique seu arquivo de log para uma pista.

Alterando o Painel de Controle ISPConfig 3 (Porta 8080)

Se o SSL LE já estiver funcionando, então vá para o terminal do seu servidor, torne-se root via sudo su e use o seguinte comando para fazer backup e substituir os arquivos SSL autoassinados criados pelos arquivos SSL Let’s Encrypt.

cd /usr/local/ispconfig/interface/ssl/  
mv ispserver.crt ispserver.crt-$(date +"%y%m%d%H%M%S").bak  
mv ispserver.key ispserver.key-$(date +"%y%m%d%H%M%S").bak  
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak  
ln -s /etc/letsencrypt/live/$(hostname -f)/fullchain.pem ispserver.crt  
ln -s /etc/letsencrypt/live/$(hostname -f)/privkey.pem ispserver.key  
cat ispserver.{key,crt} > ispserver.pem  
chmod 600 ispserver.pem
  • Se você não criou ispserver.pem antes, pode ignorar a terceira linha, que visa renomear o existente, se houver, como backup.
  • Note que estamos usando a pasta live do Let’s Encrypt em vez da pasta archive.
  • Também note a última linha onde ispserver.pem é criado combinando arquivos, assim, ele não será renovado automaticamente pelo Let’s Encrypt, ao contrário de outros arquivos que apenas criamos links simbólicos, assim, lidaremos com isso na última parte deste guia.
  • Note também que você pode digitar hostname -f ou server1.example.com, pois o resultado é o mesmo, porque hostname -f é server1.example.com.

Usando Os Mesmos Certificados SSL Let’s Encrypt Para Outros Serviços Principais

Como dicas adicionais, com base em Proteger Sua Instalação ISPConfig 3, você pode querer usar um link simbólico para ispserver.key ou .crt ou .pem em vez de apontar diretamente seu postfix, dovecot, courier, pure-FTPd e monit para os arquivos SSL Let’s Encrypt. Para dovecot, se ele já estiver usando os arquivos SSL do postfix, é seguro ignorá-lo. Em detalhes, você só precisa fazer o seguinte:

a. Para Postfix

cd /etc/postfix/  
mv smtpd.cert smtpd.cert-$(date +"%y%m%d%H%M%S").bak  
mv smtpd.key smtpd.key-$(date +"%y%m%d%H%M%S").bak  
ln -s /usr/local/ispconfig/interface/ssl/ispserver.crt smtpd.cert  
ln -s /usr/local/ispconfig/interface/ssl/ispserver.key smtpd.key  
service postfix restart  
service dovecot restart

b. Para dovecot: (* Note que isso não deve existir junto com courier)

Verifique se este código existe usando nano /etc/dovecot/dovecot.conf

[...]  
ssl_cert = 

Deixe-os como estão se existirem. Caso contrário, conserte-os. Em qualquer caso, o comando service dovecot restart já está coberto acima.

c. Para courier: (* Note que isso não deve existir junto com dovecot)

cd /etc/courier/  
mv imapd.pem imapd.pem-$(date +"%y%m%d%H%M%S").bak  
mv pop3d.pem pop3d.pem-$(date +"%y%m%d%H%M%S").bak  
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem imapd.pem  
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pop3d.pem  
service courier-imap-ssl stop  
service courier-imap-ssl start  
service courier-pop-ssl stop  
service courier-pop-ssl start

d. Para pure-FTPd:

cd /etc/ssl/private/  
mv pure-ftpd.pem pure-ftpd.pem-$(date +"%y%m%d%H%M%S").bak  
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pure-ftpd.pem  
chmod 600 pure-ftpd.pem  
service pure-ftpd-mysql restart

e. Para monit: (Se você o tiver instalado em seu servidor)

nano /etc/monit/monitrc

Adicione o link simbólico acima para ispserver.pem que criamos para pure-ftpd aqui também:

[...]  
set httpd port 2812 and  
SSL ENABLE  
PEMFILE /etc/ssl/private/pure-ftpd.pem  
allow admin:'secretpassword'  
[...]

E reinicie o monit:

service monit restart

Criar Script de Renovação Automática Para Seu Arquivo Pem ISPConfig (ispserver.pem)

Neste último passo, que não encontrei em nenhum guia até agora, está a atualização automática do ispserver.pem, como mencionado anteriormente. Atualmente, ele precisa ser alterado manualmente logo após o Let’s Encrypt renovar automaticamente seus arquivos SSL do servidor. Para evitar esquecer isso, você pode querer instalar o incron, conforme sugerido no respectivo tutorial do incron, e criar um script para atualizar automaticamente seu arquivo ispserver.pem, da seguinte forma:

Via comando de terminal, instale o incron, então crie o arquivo de script e edite-o usando nano:

apt install -y incron  
nano /etc/init.d/le_ispc_pem.sh

Adicione isso no le_ispc_pem.sh:

#!/bin/sh  
### BEGIN INIT INFO  
# Provides: LE ISPSERVER.PEM AUTO UPDATER  
# Required-Start: $local_fs $network  
# Required-Stop: $local_fs  
# Default-Start: 2 3 4 5  
# Default-Stop: 0 1 6  
# Short-Description: LE ISPSERVER.PEM AUTO UPDATER  
# Description: Atualiza ispserver.pem automaticamente após os certificados SSL ISPC LE serem renovados.  
### END INIT INFO  
cd /usr/local/ispconfig/interface/ssl/  
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak  
cat ispserver.{key,crt} > ispserver.pem  
chmod 600 ispserver.pem  
chmod 600 /etc/ssl/private/pure-ftpd.pem  
service pure-ftpd-mysql restart  
service monit restart  
service postfix restart  
service dovecot restart  
service nginx restart
  • Note que algumas pessoas não instalam o monit, então podem removê-lo com segurança. Ajuste o script acima conforme necessário.
  • Para configuração de múltiplos servidores, consulte o post #203 e adicione o código scp fornecido aqui para automatizar futuras atualizações.

Em seguida, tornamos executável, adicionamos root como um usuário permitido para incrontab e então editamos o arquivo incrontab:

chmod +x /etc/init.d/le_ispc_pem.sh  
echo "root" >> /etc/incron.allow  
incrontab -e

Adicione esta linha no incrontab:

/etc/letsencrypt/archive/$(hostname -f)/ IN_MODIFY ./etc/init.d/le_ispc_pem.sh

Reiniciando Seus Serviços

Acho que é isso para Proteger Seu Servidor Com Let’s Encrypt. Você pode querer reiniciar seu servidor web depois.

service nginx restart

Lembre-se: se você estiver usando apache, troque nginx por apache2 conforme necessário.

LE4ISPC

Como alternativa, você pode querer usar o script LE4ISPC criado para esse propósito, que suporta tanto nginx quanto apache2 do ISPConfig até pure-ftpd acima, exceto para monit. Antes de usá-lo, você já deve ter completado os passos acima (1-5) e ter:

  1. Criado o site para seu servidor via ISPConfig;
  2. O site acessível online;
  3. SSL do ISPConfig habilitado (via instalação ou atualização);
  4. SSL LE habilitado com sucesso para o site.
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.