ssl erro de certificado ao fazer solicitação cURL ao endereço IP

4

Estou tentando enviar uma solicitação cURL para um servidor com um endereço IP x.x.x.x. Faz parte de um sistema de monitoramento de saúde. No servidor, configurei hosts virtuais para subdomain.example.com nas duas portas, 80 e 443. Para o certificado ssl, estou usando um certificado curinga * .example.com, que uso neste servidor, bem como alguns servidores a mais. / p>

Quando tento enrolar para http://x.x.x.x , obtenho a resposta apropriadamente. Mas quando eu enrolo para https://x.x.x.x , aparece o seguinte erro de certificado:

curl: (51) SSL: certificate subject name '*.example.com' does not match target host name 'x.x.x.x'

Sei que isso é porque o certificado é específico para o nome de domínio e estou tentando enviar uma solicitação usando o endereço IP. Mas como eu disse, esta é uma limitação que eu tenho (monitoramento de integridade do balanceador de carga rackspace).

Existe algum trabalho?

    
por Ankit Khedekar 15.07.2014 / 15:02

2 respostas

4

Vou fazer disso uma nova resposta, já que está indo em uma direção bem diferente. Na verdade, ele não responde à pergunta como foi feita, mas talvez seja a direção que o OP deveria procurar.

A configuração usual ao usar um balanceador de carga é que o certificado SSL não reside no servidor Web, mas o SSL é entregue ao balanceador de carga.

O usuário final faz uma solicitação HTTPS para o balanceador de carga. O balanceador de carga desembrulha o SSL e encaminha a solicitação via HTTP não criptografado para o servidor da Web, com um cabeçalho que informa ao servidor da Web que a solicitação original foi criptografada. (importante para incorporar URLs na resposta e para evitar a exibição de conteúdo seguro em http).

    
por 15.07.2014 / 16:45
10

Você pode usar o nome de domínio como de costume, mas substituir o resolvedor da seguinte forma:

curl -v --resolve subdomain.example.com:443:x.x.x.x https://subdomain.example.com/

Pode ser estranho manter muitos desses mapeamentos. Você pode preferir apenas ignorar a incompatibilidade de certificados:

curl --insecure https://subdomain.example.com/

Se desejar, você pode usar --insecure --verbose e analisar as mensagens para verificar se o certificado é para o domínio esperado, mas isso provavelmente é mais trabalho do que usar --resolve

    
por 15.07.2014 / 15:06