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

1

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

O SSL está funcionando bem e perfeito por aparência no navegador. Mas o nosso aplicativo de desenvolvedores que está usando uma solicitação de curl (com SSL) e ele enfrenta 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, ele 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 sob o segundo certificado, há os seguintes erros.

Common names    domain2.com   MISMATCH
Trusted No   NOT TRUSTED

O erro de curl também estava dizendo 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 informações junto com o domínio1.

Também testei o mesmo cenário em outros servidores, criando domínio com o Letsencrypt SSL e todos têm o mesmo problema. ao verificar com SSLlabs ssllabs-checker , ele é capaz de obter detalhes do certificado domain2 juntamente com domain1.Still domain1 Grade é A também seguro em todos os outros sites de verificação.

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

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

captura de tela

** Eu não pude usar o aplicativo Insecure Curl no aplicativo, o que negligenciaria esse problema e faria com que o pedido de onda fosse bem-sucedido. Se alguém tiver ideia sobre isso, por favor ajude. Eu passei muitas horas por trás disso, ainda ....

a questão acima é para o plug-in do Wordpress e, portanto, não é possível adicionar um parâmetro específico junto com o curl. (é do núcleo do WP)

Obrigado antecipadamente.

    
por Anto 16.01.2017 / 16:41

1 resposta

0

A versão curl em uso parece estar perdendo o suporte básico SNI . O SNI é necessário quando vários domínios com SSL sã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 suporte para isso foi introduzido na versão 7.18.1 .
  • adicione você mesmo ao parâmetro do host em seus clientes:
    -H "Host: domain1.com"
  • Mova o domínio para usar um endereço IP diferente. Desta forma, não são necessárias alterações no cliente.
por 19.01.2017 / 14:59