AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 772857
Accepted
Justin
Justin
Asked: 2016-04-26 13:44:06 +0800 CST2016-04-26 13:44:06 +0800 CST 2016-04-26 13:44:06 +0800 CST

Usando Lets Encrypt SSL para vários servidores Apache com tráfego distribuído

  • 772

Estou tendo alguns problemas para configurar o Let's Encrypt para alguns sites que estão configurados em dois servidores diferentes e têm o tráfego distribuído para eles via HAProxy.

Os servidores têm vários VHosts/domínios neles, todos precisando de certificados SSL. Para o bem deste post, digamos que eles são:

  1. foo.some-site.com
  2. bar.some-site.com

Ambos os registros A são configurados com dois endereços IP. Posso verificar com nwtools.com ou apenas nslookup se ambos os registros A foo.some-site.com e bar.some-site.com resolvem os mesmos dois endereços IP. E eu sei que o Let's Encrypt requer que o vhost tenha um registro válido usado para que ele possa fazer uma pesquisa.

Planejei executar a configuração do Lets Encrypt em ambos os servidores para todos os vhosts e funcionou bem para um deles, mas quando mudei para o segundo, recebi um erro:

[root@server httpd]# /opt/letsencrypt/letsencrypt-auto --apache -d foo.some-site.com
Checking for new version...
Requesting root privileges to run letsencrypt...
   /root/.local/share/letsencrypt/bin/letsencrypt --apache -d foo.some-site.com
Failed authorization procedure. foo.some-site.com (tls-sni-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Failed to connect to host for DVSNI challenge

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: foo.some-site.com
   Type:   connection
   Detail: Failed to connect to host for DVSNI challenge

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.

Isso poderia ser porque está fazendo uma pesquisa ou tentando enrolar foo.some-site.com e pode estar sendo direcionado para o outro servidor? Não tenho certeza de como isso realmente importaria, já que ambos têm os mesmos VHosts neles, a menos que LetsEncrypt esteja realmente ouvindo a conexão que está se fazendo ...

O que está me confundindo é que funcionou bem para um deles (digamos bar.some-site.com ), então por que funcionaria para um site, mas falharia para outro com exatamente a mesma configuração?

Se alguém souber uma maneira de configurar o Lets Encrypt para os mesmos vhosts em dois servidores diferentes, a ajuda seria muito apreciada!

centos apache-2.4 centos7 haproxy lets-encrypt
  • 2 2 respostas
  • 3874 Views

2 respostas

  • Voted
  1. Best Answer
    EEAA
    2016-04-26T13:51:05+08:002016-04-26T13:51:05+08:00

    Isso pode ser porque está fazendo uma pesquisa ou tentando enrolar foo.some-site.com e pode estar sendo direcionado para o outro servidor?

    Sim, definitivamente.

    O LE precisa se conectar novamente ao servidor no qual você está executando o cliente LE, como parte do processo de resposta ao desafio de verificação de domínio. Sem entrar em detalhes, o cliente LE realmente disponibiliza um determinado arquivo em seu servidor web temporariamente que o servidor LE precisa ser capaz de consumir para verificar a propriedade do domínio.

    A execução desse comando em todos os servidores de back-end é desnecessária e complicada. Execute-o uma vez e copie a chave e a cadeia de certificados para o restante dos servidores de back-end.

    O que está me confundindo é que funcionou bem para um deles (digamos bar.some-site.com), então por que funcionaria para um site, mas falharia para outro com exatamente a mesma configuração?

    Porque você teve sorte? :) É possível que por acaso seu load balancer tenha direcionado as requisições LE para o local certo uma vez, mas não o tenha feito na segunda vez.

    • 5
  2. Josh Richards
    2016-06-15T16:55:56+08:002016-06-15T16:55:56+08:00

    Existem várias abordagens para cenários envolvendo vários servidores web/aplicativos/balanceadores de carga. Você pode ler sobre alguns deles no Guia oficial de integração do Let's Encrypt para ambientes maiores.

    Existem algumas maneiras legais de fazer isso, como:

    • redirecionando todas as solicitações de validação para um único host/pool de hosts de validação
    • fazendo todo o gerenciamento de certificados off-line (ou seja, solicitando, renovando e distribuindo chaves de seu host de gerenciamento em vez de em seus servidores web)

    O que faz sentido para você dependerá de suas preferências e de vários requisitos específicos do ambiente.

    • 1

relate perguntas

  • Como descobrir detalhes sobre hardware na máquina Linux?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve