Ir para o conteúdo
TURNKEYGNU / LINUX
AplicativosDocumentaçãoBlogCapturas de telaGitHubTurnKey Hub
文Português
EnglishEspañol中文日本語PortuguêsDeutsch
Principal/Confconsole - Let's Encrypt

Documentação

Confconsole - Let's Encrypt

Índice

  • Visão geral
  • Renovar automaticamente o certificado
  • Obter certificado
    • HTTP-01 - validar via porta 80
    • DNS-01 - validar através de registro DNS
    • Notas especiais re Certificados Wildcard
  • Obtendo um certificado - Atrás das cenas
  • Detalhes da tarefa do Cron
  • Avançado - mensagem de maintence personalizada
  • Avançado - uso com vários nomes de domínio

Visão geral

O plugin Confconsole Let's Encrypt fornece uma maneira simples de obter um certificado legítimo de CA assinado por TLS/SSL através do Let's Encrypt. Ele suporta ambos os HTTP-01 e DNS-01 Métodos "desafio" para validar seu controle do (sub)domínio(s) que você está registrando.

Os desafios do HTTP-01 são hospedados pelo nosso mini servidor web personalizado via porta 80. Se a porta 80 já estiver em uso, o servidor web padrão é temporariamente interrompido. Os desafios DNS-01 são cumpridos definindo temporariamente um registro TXT DNS através de um provedor DNS suportado API.

Por padrão, o Confconsole suporta registrar um domínio com até 4 subdomínios, em um único certificado que o servidor web existente usará em todas as portas https. Então o Administrador, etc também usará o mesmo certificado, como o Webmin (via ele é construído em miniservidor). Os certificados Wildcard também são suportados, mas eles requerem validação DNS-01 (não compatível com HTTP-01).

Além da configuração inicial via Confconsole, nenhuma configuração adicional do seu servidor é geralmente necessária. Cenários de uso comuns devem "apenas funcionar". Mais incomuns e/ou complexos ainda são possíveis, mas podem requerer configuração adicional.

Confconsole - Let's Encrypt

Por padrão, Confconsole deve "apenas trabalhar" com estes servidores/servidores web:

  • Apache
  • LigHTTPd
  • Nginx
  • Tomcat
  • Webmin

Se desejar ver suporte para servidores alternativos, por favor publique no fóruns, e/ou abrir uma edição sobre o nosso localizador Se estiver aberto a contribuir com o código, isso é calorosamente bem-vindo.

Renovar automaticamente o certificado

A selecção desta opção faz com que a tarefa de renovação de certificados TLS/SSL por omissão (/etc/cron.daily/confconsole-dehydrated) executável (ou não). Apenas os ficheiros executáveis dentro do /etc/cron.daily são activados automaticamente pelo cron.

Nota: Até que você obtenha seu certificado inicial (que também configura desidratado), o trabalho do cron não existe no diretório cron.daily. Isso garante que o trabalho do cron não pode ser ativado até que o desidratado-embrulhador tenha sido executado (e espero que um certificado Let's Encrypt TLS/SSL tenha sido gerado).

Nota: Para gerar certificados wildcard com a integração TurnKey Let's Encrypt, você precisará usar Validação do DNS-01. A validação do DNS-01 não está disponível antes do Confconsole v2.1 (aparecido pela primeira vez no TurnKey v18.0).

Para mais informações sobre o que o trabalho do cron realmente faz, por favor veja Detalhes da tarefa do Cron - Lá em baixo.

Obter certificado

Se seleccionar esta opção, irá permitir- lhe definir um único nome de domínio totalmente qualificado (FQDN) para o seu servidor.

Outra opção é definir um domínio root e até 4 subdomínios separados.

Se desejar definir mais de um domínio raiz e/ou mais de 4 subdomínios, é necessária a configuração manual. Avançado - uso com vários nomes de domínio abaixo. Se você tem outro cenário não coberto, por favor, inscreva-se e post nos fóruns.

Obtendo um certificado - HTTP-01

Esta opção validará sua propriedade do domínio através da busca de registros DNS públicos do domínio e verificará se os dados de desafio adequados estão sendo servidos através porta 80 do seu servidor.

Requisitos:

  • Porta 80: porta 80 (porta padrão de baunilha HTTP) deve estar aberta no seu servidor e disponível publicamente
  • Registro(s) DNS: registros (s) autoritários 'A'/'AAAA' ou 'CNAME' que resolvem para o seu servidor (para todos os domínios/subdomínios que você está recebendo certificados para)

Porto 80: Além da porta ser acessível externamente, não são necessárias alterações na configuração do servidor web existente. Por exemplo. a configuração do servidor web redirecionando todo o tráfego do HTTP para o HTTP será ignorada, então não precisa ser alterada.

Registo(s) DNS: Se você acabou de fazer as alterações necessárias com seu registrador DNS, por favor, esteja ciente de que pode levar tempo para que os registros DNS se propaguem publicamente. Para verificar se os seus registos DNS estão disponíveis publicamente, verifique por favor através de 'dig'. Por exemplo, o Google está online grátis Ferramenta de escavação.

Nota Importante: Por favor, certifique-se de que você tenha seus servidores de nomes de domínio corretamente configurados e a porta 80 esteja disponível publicamente antes de executar isso. Falhar em fazer isso fará com que os desafios Let's Encrypt falhem (assim você não receberá um certificado). Falhas repetidas podem fazer com que seu servidor seja bloqueado (por uma semana) de tentativas adicionais.

Obtendo um certificado - DNS-01

Esta opção validará a sua propriedade do(s) domínio(s) através da procura de um registro especial público DNS TXT do domínio raiz e garantir que ele contém o desafio apropriado dados. Não é necessário nenhum acesso externo ao seu servidor, por isso esta opção é ideal para servidores internos/intranet. Esta opção também suporta certificados wildcard (por exemplo, '*.example.com').

Requisitos:

  • Suportado provedor DNS: seu domínio deve ser registrado com um provedor suportado
  • Credenciais: Credenciais do usuário e/ou chave API (como relevante) para acessar API do provedor DNS

Fornecedor DNS suportado: O registro TXT DNS necessário precisa ser criado com seu registro DNS. Desidratado que, por sua vez, alavanca dns-lexicon para criar o registro TXT DNS necessário. Como tal, seu domínio precisa ser registrado com provedor suportado.

Credenciais: Para criar o registro DNS necessário, é necessário ter acesso ao seu provedor DNS (via API). Cada provedor tem requisitos diferentes, por isso, consulte o dns-lexicon docs. Nessa página de documentos, encontre o seu provedor e clique no link. Isso deve levá-lo para a seção relevante dessa página. Os campos relevantes são formatados como pontos de ponto, com a chave anotada em fonte monoespacial, laranja colorida, com uma explicação depois.

Note que o arquivo de configuração pode conter comentários (linhas que começam com um prefixo '#') que serão ignorados. Veja alguns exemplos de configuração abaixo:

Rota AWS53: (léxico docs)

# AWS Route53 example
auth_access_key: YOUR_AWS_ACCESS_KEY
auth_access_secret: YOUR_AWS_ACCESS_SECRET
private_zone: False # generally you'll always want public zone
zone_id: YOUR_ZONE_ID

Chama de nuvem: (léxico docs)

# Cloudflare example 1 - using global api key
auth_username: YOUR_CF_USERNAME
auth_token: YOUR_CF_API_TOKEN

Ou

# Cloudflare example 2 - using unscoped API token
auth_token: YOUR_CF_UNSCOPED_API_TOKEN

Ou

# Cloudflare example 3 - using scoped API token
auth_token: YOUR_CF_SCOPED_API_TOKEN
zone_id: YOUR_CF_ZONE_ID

Para outros provedores DNS, consulte os documentos relevantes clicando em seu provedor na lista no topo da Página de documento do provedor de Lexicon DNS.

Notas especiais re Certificados Wildcard

Por favor, note que gerar um Certificado Wildcard está disponível apenas quando se utiliza o método DNS-01 challenge.

Um certificado wildcard, é um certificado especial que é gerado para um domínio que começa com um asterisco: '*', por exemplo, '*.example.com'. Este certificado especial que corresponde a qualquer subdomínio (dentro dos limites). Por exemplo. '*.example.com' cobrirá sites com domínios como 'www.example.com', 'blog.example.com' e 'docs.example.com'. No entanto, o mesmo certificado não funcionará com sub-subdomínios, por exemplo. um certificado '*.example.com' não funcionará com 'www.docs.example.com'. Para 'www.docs.example.com' trabalhar com um certificado wildcard, você precisará obter um certificado para '*.docs.example.com'.

É possível registrar subdomínios específicos ao mesmo tempo que registrar um domínio wildcard, no entanto, o domínio wildcard deve vir em primeiro lugar. Múltiplos domínios wildcard também são permitidos.

Além disso, ao registrar um domínio wildcard, o Desidratado precisa dar um nome falso. Você verá instruções online para separar o(s) domínio(s) com um '>' seguido do nome falso. Você pode fazer isso se quiser, mas Confconsole irá ignorá-lo e gerar seu próprio nome falso.

As funcionalidades mais avançadas suportadas ao usar Aliases com Dehydarated requerem usá-lo independentemente.

Nota Importante: Por favor, certifique-se de que você tem sua informação de registro DNS correta. Detalhes de autenticação incorretos farão com que os desafios Let's Encrypt falhem (para que você não obtenha um certificado). Falhas repetidas podem fazer com que seu servidor seja bloqueado (por uma semana) de tentativas adicionais.

Obtendo um certificado - Atrás das cenas

O processo é assim:

  • O plugin Confconsole Let's Encrypt escreve o domínio (e subdomínios) para /etc/dehydrated/confconsole.domains.txt
  • Confconsole chama desidratado-embrulhador
  • desidratado-embrulhador pára a escuta do servidor web na porta 80
  • controlo desidratado-embrulhador para /etc/dehydrated/confconsole.config (arquivo de configuração); se não existir, ele copia o arquivo padrão de: /usr/share/confconsole/letsencrypt/dehydrated-confconsole.config
  • controlo desidratado-embrulhador para /etc/dehydrated/confconsole.hook.sh (script hook); se não existir, copia-o do ficheiro predefinido: /usr/share/confconsole/letsencrypt/dehydrated-confconsole.hook.sh
  • controlo desidratado-embrulhador para /etc/cron.daily/confconsole-dehydrated (script de cron); se não existir, copia-o do ficheiro predefinido: /usr/share/confconsole/letsencrypt/dehydrated-confconsole.cron
  • desidratado-embrulhador chama desidratado, passando confconsole.config, confconsole.hook.sh & confconsole. domains. txt (todos armazenados no interior de /etc/dehydrated/)
  • contatos desidratados Let's Encrypt e recebe o desafio (para provar que você controla o domínio)
  • Enquanto hospeda o desafio, add-water redireciona temporariamente todo o tráfego da web, exceto o desafio (ou seja, 304 - temporariamente movido) para a raiz da web. Uma mensagem simples "Sob Maintence" é exibida. Para fornecer uma página html personalizada, consulte Avançado - mensagem de maintence personalizada - Lá em baixo.
  • através do script gancho, desidratado serve Let's Encrypt desafios usando servidor add-water (minimalista python webserver)
  • quando feito, add-water é morto (via script gancho)
  • desidratado escreve certificado para /etc/ssl/private/cert.pem (via script gancho); certs originais gerados por desidratados permanecem em /var/lib/dehydrated/certs/DOMAIN
  • mãos desidratadas de volta para o invólucro desidratado
  • desidratado-wrapper reinicia servidor web
  • o desidratado-wrapper reinicia o atordoamento (assim Webmin & Webshell também usam o novo certificado)
  • mãos desidratadas-embrulhadoras de volta para confconsole

Detalhes da tarefa do Cron

A tarefa do cron verifica a data de expiração do certificado padrão (/etc/ssl/private/cert.pem) e se expirar no prazo de 30 dias ou menos, corre desidratado-embrulhador (usando o interruptor --force).

Avançado - mensagem de maintence personalizada

Como observado, enquanto ele está servindo os desafios, add-water irá redirecionar todos os outros urls para a raiz web. Por padrão, ele irá exibir uma mensagem simples "Manutenção" através de um arquivo index.html básico.

Se você deseja exibir uma mensagem personalizada, então você pode adicionar um arquivo custom index.html para /var/lib/confconsole/letsencrypt/. E.g. para copiar através do padrão e, em seguida, ajustar:

mkdir -p /var/lib/confconsole/letsencrypt/
cp /usr/share/confconsole/letsencrypt/index.html \
  /var/lib/confconsole/letsencrypt/index.html

add-water servirá /var/lib/confconsole/letsencrypt/index.html se existir, ou de outra forma irá cair para trás para o padrão.

Nota: O arquivo personalizado deve ser nomeado index.html e contém apenas HTML válido (e CSS). PHP ou outras linguagens do lado do servidor não são suportadas. Embutido (ou seja, "inline") JavaScript também é suportada como que é processado lado do cliente.

Avançado - uso com vários nomes de domínio

O plugin interativo Confconsole só suporta um único domínio com até 4 subdomínios. No entanto, o desidratado-embrulhador pode lidar com vários domínios da raiz, além de múltiplos subdomínios. Para suportar que você precisará fazer ajustes de configuração manualmente em vários lugares:

  • adicionar domínios adicionais a /etc/dehydrated/confconsole.domains.txt
    • garantir que cada linha começa com o domínio base, seguido de uma lista separada por espaço de quaisquer subdomínios.
    • WARNING: Se você re-executar confconsole Let's Encrypt plugin, seus domínios adicionais personalizados serão removidos!
  • ajustar os seus servidores virtuais para usar os certificados relevantes em /var/lib/dehydrated/certs/DOMAIN. Cada domínio terá seu próprio subdiretório sob /var/lib/dehydrated/certs/.
  • Por padrão, o último domínio (e qualquer subdomínio) configurado, será o que funcionará para Webmin & Webshell (e Administrador, se estiver incluído). Para alterar esse comportamento, você pode ajustar o script de gancho, ou simplesmente reorganizar a ordem de seus domínios e colocar o que você quer Webmin & Webshell disponível, por último.
  • Nota: a tarefa do cron só verifica o termo de /etc/ssl/private/cert.pem. Então, se você ajustar o script gancho para não atualizar mais /etc/ssl/private/cert.pem, você também precisará ajustar o trabalho cron para verificar o prazo de validade de um certificado que você está atualizando. Falha em fazer isso resultará em atualizações diárias de certificados, que podem impedir seu servidor de acessar os servidores Let's Criptografia.
TURNKEYGNU / LINUX

Controle sua infraestrutura sem começar do zero.

Explorar o TurnKey
SobreDocumentaçãoPerguntas frequentesBlogGitHub
Livre e de código abertoSeguro por padrãoPronto para implantar