cURL: Pedido para http e https por padrão

0

Um servidor está sendo executado na porta 5000. Eu tenho que escrever um script para cURL essa URL e analisar a resposta. Aqui, o problema é que o servidor pode ser executado no protocolo http ou https . Isso significa que eu enroloi https://serverip:5000 ou http://serverip:5000 .

Por enquanto, primeiro estou verificando com http request. Se essa solicitação falhar, estou verificando https . Existe alguma maneira que cURL possa detectar automaticamente esse servidor em execução em http ou https e solicitar a ele?

    
por gangadhars 01.02.2016 / 07:00

1 resposta

1

AFAIK, o comando "curl" não fornece um recurso para determinar se a conexão é ssl ou não. Então você precisa usar uma ferramenta diferente para verificar isso.

Eu criei um script pequeno, que usa "openssl" para determinar se a conexão especificada é ssl ou não. Aproveite:

#!/bin/bash

if [ $# -lt 2 ]; then 
    echo "Usage: testssl.sh <host> <port>"
    exit 1;
fi 

SSL="0"
echo ^d | openssl s_client -connect ${1}:${2} && SSL="1"

if [ "${SSL}" == "1" ] ; then
    proto=https
else
    proto=http
fi
    curl ${proto}://${1}:${2}
    
por 01.02.2016 / 09:42