Ubuntu16.04: Nginx 1.10: Nginx servindo várias informações de certificado. SSL funciona perfeitamente no navegador, mas enfrenta problemas com curl. Erro cURL 51

Ubuntu16.04: Nginx 1.10: Nginx servindo várias informações de certificado. SSL funciona perfeitamente no navegador, mas enfrenta problemas com curl. Erro cURL 51

Eu tenho vários sites em um servidor Ubuntu (16.04) com nginx/1.10.0 + letsencrypt.

SSL está funcionando bem e perfeito pela aparência do navegador. Mas nosso aplicativo de desenvolvedores que está usando uma solicitação curl (com SSL) e está enfrentando um erro como

Update Failed: Download failed. cURL error 51: SSL: certificate subject name 'domain2.com' does not match target host name 'domain1.com'

e ao verificar usando SSLLABS, mostrou A_grade mas está carregando vários certificados (certificado de outro domínio no mesmo servidor)

Certificate #1: RSA 2048 bits (SHA256withRSA)

e

Certificate #2: RSA 2048 bits (SHA256withRSA) No SNI

e no segundo certificado, há os seguintes erros.

Common names    domain2.com   MISMATCH
Trusted No   NOT TRUSTED

O erro Curl também dizia sobre o segundo nome de domínio.

cURL error 51: SSL: certificate subject name 'domain2' does not match target host name 'domain1'

o domínio2 é um site totalmente diferente. Não sei como o nginx está enviando suas informações junto com o domínio1.

Também testei o mesmo cenário em outros servidores criando um domínio com Letsencrypt SSL e todos tiveram o mesmo problema. ao verificar com SSLlabsverificador ssllabsele é capaz de obter detalhes do certificado do domínio2 junto com o domínio1. Ainda assim, o grau do domínio1 é A. também é seguro em todos os outros sites de verificação.

e se eu estiver verificando o domínio2 com SSLlabs, ele buscará qualquer outro certificado de domínio que esteja no mesmo servidor. (mas se houver domínios A, B, C, D, uma das verificações SSL dos domínios buscará apenas um certificado. Isso não é problema e todos os outros terão esse problema.)

captura de tela anexada. (uma longa captura de tela de página inteira). Acho que vai esclarecer o caso :(

captura de tela

**Não foi possível usar a solicitação Curl insegura no aplicativo, o que negligenciaria esse problema e tornaria a solicitação Curl bem-sucedida. Se alguém tiver ideia sobre isso, por favor ajude. Passei muitas horas atrás disso, ainda....

O problema acima é para o plugin Wordpress e, portanto, não é possível adicionar parâmetros específicos junto com curl. (é do núcleo do WP)

Desde já, obrigado.

Responder1

A versão curl em uso parece estar faltando o básicoSNIapoiar. O SNI é necessário quando vários domínios com SSL estão hospedados no mesmo endereço IP.

Você tem basicamente três opções:

  • atualize o curl para uma versão que suporte SNI.
    O apoio para isso foiintroduzido na versão 7.18.1.
  • adicione você mesmo o parâmetro host em seus clientes:
    -H "Host: domain1.com"
  • Mova o domínio para usar um endereço IP diferente. Dessa forma, nenhuma alteração no cliente é necessária.

informação relacionada