bg-tutorials

Como instalar um certificado SSL no lighttpd

Neste tutorial, você aprenderá como instalar um certificado SSL no Lighttpd. O guia aborda a configuração atual (certificado e chave privada separados com o módulo mod_openssl), o método legado combinado em PEM para builds mais antigas, e um teste rápido de configuração antes de reiniciar.

Também gravamos um vídeo que mostra todo o processo passo a passo. Se preferir a versão em texto, continue lendo abaixo.

Gerar um código CSR no Lighttpd

Começaremos com a geração do CSR (Certificate Signing Request). Um CSR é um bloco de texto codificado que você envia a uma Autoridade Certificadora para solicitar um certificado SSL. Você tem duas opções:

Abra o arquivo CSR com qualquer editor de texto e copie seu conteúdo, incluindo as linhas BEGIN CERTIFICATE REQUEST e END CERTIFICATE REQUEST, para o campo correspondente durante o processo de pedido do SSL. Envie o CSR à Autoridade Certificadora e aguarde a validação. Depois que a CA emitir seu certificado SSL, continue com a instalação abaixo.

Instalar um certificado SSL no Lighttpd

Etapa 1: Prepare os arquivos do seu certificado

Após a validação, a Autoridade Certificadora envia por e-mail os arquivos do certificado. Baixe o arquivo compactado e extraia-o. Você deverá ter:

  • yourdomain.crt, seu certificado SSL principal.
  • yourdomain.ca-bundle, os certificados intermediários (o pacote CA).
  • yourdomain.key, a chave privada que você gerou com o CSR.

O Lighttpd recomenda que o arquivo referenciado por ssl.pemfile contenha a cadeia completa do certificado: primeiro o seu certificado, seguido pelos certificados intermediários. Crie esse arquivo de cadeia combinada e, em seguida, mova-o junto com a chave privada para um diretório que o Lighttpd possa ler (por exemplo, /etc/lighttpd/ssl/):

cat yourdomain.crt yourdomain.ca-bundle > yourdomain.fullchain.pem
sudo mkdir -p /etc/lighttpd/ssl
sudo cp yourdomain.fullchain.pem yourdomain.key /etc/lighttpd/ssl/

Restrinja a chave privada para que apenas o root possa lê-la:

sudo chmod 600 /etc/lighttpd/ssl/yourdomain.key

Etapa 2: Ative o mod_openssl

Desde a versão 1.4.56, o suporte a TLS no Lighttpd está em um módulo carregável chamado mod_openssl (outros backends como mod_mbedtls, mod_wolfssl, mod_gnutls e mod_nss também existem). Carregue-o no seu arquivo de configuração principal antes do bloco de socket SSL:

server.modules += ( "mod_openssl" )

Nota: no Lighttpd 1.4.55 e versões anteriores, o TLS era compilado diretamente, em vez de carregado como módulo, então você pode pular esta linha nessas builds. Verifique sua versão com lighttpd -v.

Etapa 3: Edite o lighttpd.conf

Abra o arquivo de configuração principal (o caminho geralmente é /etc/lighttpd/lighttpd.conf) com seu editor preferido:

sudo nano /etc/lighttpd/lighttpd.conf

Adicione um bloco de socket para a porta 443. No Lighttpd atual (1.4.56+), mantenha a cadeia do certificado e a chave privada em arquivos separados: aponte ssl.pemfile para o arquivo de cadeia completa e ssl.privkey para a chave. Esse é o formato que a maioria das Autoridades Certificadoras entrega, e é a configuração que o Lighttpd recomenda.

$SERVER["socket"] == ":443" {
    ssl.engine  = "enable"
    ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.fullchain.pem"
    ssl.privkey = "/etc/lighttpd/ssl/yourdomain.key"

    # Minimum TLS version (ssl-conf-cmd needs lighttpd 1.4.48+; TLS 1.2 is already the default on 1.4.56+)
    ssl.openssl.ssl-conf-cmd = ( "MinProtocol" => "TLSv1.2" )
}
  • ssl.engine ativa o TLS para este socket.
  • ssl.pemfile contém seu certificado seguido pela cadeia intermediária.
  • ssl.privkey contém a chave privada. É obrigatório desde a versão 1.4.53 sempre que a chave não estiver dentro do pemfile.

Para redirecionar HTTP simples para HTTPS, garantindo que os visitantes sempre acessem a versão segura, adicione um redirecionamento para a porta 80 (isso requer o mod_redirect, que já vem carregado por padrão na maioria das distribuições):

$SERVER["socket"] == ":80" {
    url.redirect = ( "^/(.*)" => "https://yourdomain.com/$1" )
}

Salve e feche o arquivo.

Método legado: PEM combinado e ssl.ca-file

Builds mais antigas do Lighttpd 1.4.x (anteriores à 1.4.53) usavam um único PEM combinado que continha o certificado e a chave privada concatenados, com a cadeia intermediária fornecida separadamente através de ssl.ca-file. Se você estiver mantendo um desses sistemas mais antigos, crie o arquivo combinado assim:

cat yourdomain.crt yourdomain.key > /etc/lighttpd/ssl/yourdomain.pem

Em seguida, faça a referência no bloco de socket:

$SERVER["socket"] == ":443" {
    ssl.engine  = "enable"
    ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.pem"
    ssl.ca-file = "/etc/lighttpd/ssl/yourdomain.ca-bundle"
}

No Lighttpd atual, prefira a forma separada com ssl.pemfile e ssl.privkey da Etapa 3 e mantenha a cadeia completa no pemfile. A diretiva ssl.ca-file foi renomeada para ssl.verifyclient.ca-file na versão 1.4.60, já que sua verdadeira finalidade é verificar certificados de cliente, e não servir a cadeia do servidor.

Etapa 4: Teste a configuração

Sempre verifique a sintaxe antes de reiniciar, pois um erro pode impedir o servidor de iniciar. Execute:

sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf

Você deverá ver uma mensagem indicando que a sintaxe está OK. Para uma verificação mais profunda que também carrega e inicializa os módulos, use sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf. Corrija quaisquer erros relatados antes de continuar.

Etapa 5: Reinicie o Lighttpd

Aplique as alterações. Em um sistema moderno com systemd, reinicie o serviço:

sudo systemctl restart lighttpd

Em sistemas mais antigos que usam SysV init, use o script de inicialização:

sudo /etc/init.d/lighttpd restart

Parabéns, seu certificado SSL agora está instalado no Lighttpd. Para confirmar o resultado e obter um relatório de status instantâneo, use nosso SSL Checker ou navegue pelo nosso conjunto completo de ferramentas SSL. Para opções avançadas, consulte a documentação oficial de SSL do Lighttpd.

Perguntas Frequentes

O Lighttpd usa um arquivo PEM combinado ou arquivos separados de certificado e chave?

O Lighttpd atual (1.4.56 e posterior) recomenda arquivos separados: o certificado mais sua cadeia intermediária no arquivo indicado por ssl.pemfile, e a chave privada em ssl.privkey. O antigo PEM combinado, que concatenava o certificado e a chave em um único ssl.pemfile, ainda funciona, mas a forma separada corresponde ao modo como a maioria das Autoridades Certificadoras entrega os arquivos e é a recomendação documentada.

Ainda preciso do ssl.ca-file para a cadeia intermediária?

Não. A recomendação atual é incluir os certificados intermediários diretamente no arquivo ssl.pemfile, logo após o seu certificado. A diretiva ssl.ca-file era uma forma histórica de completar a cadeia quando o pemfile continha apenas o certificado final, e na versão 1.4.60 ela foi renomeada para ssl.verifyclient.ca-file, já que sua verdadeira função é a verificação de certificados de cliente.

Como verifico a configuração antes de reiniciar o Lighttpd?

Execute sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf para testar a sintaxe, ou sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf para um teste mais profundo que também carrega os módulos. Corrija quaisquer erros relatados antes de reiniciar, para que um erro de digitação não impeça o servidor de iniciar.

Por que meu navegador mostra uma cadeia de certificados incompleta no Lighttpd?

Isso geralmente significa que os certificados intermediários estão ausentes do seu ssl.pemfile. Concatene seu certificado e o pacote CA em um único arquivo, com o certificado primeiro, e aponte o ssl.pemfile para ele. Depois teste a configuração e reinicie. Você pode confirmar que a cadeia está completa com nosso SSL Checker.

Como verifico se o certificado SSL está instalado no Lighttpd?

Conecte-se ao seu site com OpenSSL e leia o certificado que ele fornece:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Se o certificado estiver instalado, isso exibirá o emissor e as datas de validade. Você também pode abrir seu site em um navegador e verificar o cadeado.

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

Uma imagem detalhada de um dragão em voo
Escrito por

Redator de conteúdo experiente, especializado em certificados SSL. Transformação de tópicos complexos de segurança cibernética em conteúdo claro e envolvente. Contribua para melhorar a segurança digital por meio de narrativas impactantes.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.