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.