Estou tentando configurar o letsencrypt no lighttpd do zero. Atualmente, executo lighttpd em 16.10 xenial e desejo mover sites existentes para https de http. Eu sei que há um processo de configuração automática para Apache e ngnix, mas não estou inclinado a mudar as coisas. Tenho meia dúzia de nomes de host, em um par de domínios hospedados usando hosts virtuais e com blocos individuais por host.
Como eu faria isso?
Demorou um pouco de tentativa e erro e reunindo bits de várias fontes.
Você pode querer fazer algumas coisas de forma diferente, dependendo de suas necessidades. Nesse caso , não fiz algumas coisas que as pessoas incluem e algumas coisas são opcionais.
Eu comecei com este guia e divergi descontroladamente
Se você deseja gerar seu próprio arquivo ssl.dh, faça-o agora . É opcional e demora um pouco
cd /etc/ssl/certs
Então
openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
é lento e um tanto redundanteopenssl dhparam -dsaparam -out etc/ssl/certs/dhparam.pem
é muito mais rápidoEm seguida, instale o certbot do letsencrypt de acordo com as instruções
Gere seus certificados. Eu escolhi ter um certificado para todos os meus hosts no domínio "example.com" em um certificado e ter "example.org" em seu próprio certificado.
o certbot usa as portas do seu servidor web, então desligue sua instância lighttpd primeiro
Gerar um certificado é simplesmente uma questão de executar
certbot certonly --standalone -d example.org
para um domínio ecertbot certonly --standalone -d example.com -d chat.example.com
para vários domínios (até 20) em um certificado.O lighttpd espera um único arquivo pem e o letsencrypt faz um par (inicialmente!) Portanto, você precisará mesclá-los. Ir para
cd /etc/letsencrypt/live/
entrar em cada pasta e executarcat privkey.pem cert.pem > ssl.pem
Para nossos propósitos, vamos supor que você tenha arquivos em "/etc/letsencrypt/live/chat.example.com/" e "/etc/letsencrypt/live/example.org/"
Para fins de teste, vamos supor que você deseja um desses certificados como padrão e deseja manter a porta 80 disponível para teste para ver se o servidor inicia com suas alterações.
Adicionar uma leitura de bloco
Você pode substituir isso mais tarde e é o mínimo necessário e permite executar https ao lado de http.
Qualquer host sem um conjunto explícito de configurações conectando-se a https usará esses certificados. É um conjunto viável mínimo para testar.
Inicie o lighttpd e teste.
Agora, se você está falando sério , pode querer mais configurações, como usar aquela configuração ssl.dh sobre a qual falamos, e você gastou duas horas gerando um arquivo dhparam.pem logo no início. Você pode substituir o bloco que acabou de adicionar por algo assim - isso funciona como configurações padrão para todo o servidor.
Ele faz HTTPS com um conjunto mais completo de configurações (ajuste a gosto) e redireciona qualquer conexão HTTP para HTTPS.
Se você deseja um domínio com um conjunto diferente de chaves, pode substituir essas configurações no bloco de host.
Reinicie seu servidor, teste para garantir que a porta 80 não seja conectável e https seja, e você deve estar bom.
A maioria das ferramentas oferece suporte a um modo de "servidor da Web burro", no qual fornecem arquivos que precisam ser atendidos pelo seu servidor da Web no
/.well-known/acme-challenge/
diretório.Também é possível gerar esse conteúdo com alguma linguagem dinâmica (lua, php, ...: concat o nome do arquivo de solicitação
'.'
e o hash da chave pública)