Eu finalmente encontrei a solução sem cancelar os avisos de certificação e tal.
Isso requer a mais recente CURL, que é 7.37.1
A sintaxe certa é:
curl --resolve yourdomain.com:443:se.rv.er.ip https://yourdomain.com
Eu tenho um site hospedado em 2 servidores. O site é baseado em SSL.
Gostaria de monitorar (carregar a página principal e procurar por uma determinada string) o site por servidor usando um Opsview local. O que significa que eu preciso ir arquivo HOSTS do Opsview e adicionar "domain.com 10.10.10.33" e alterá-lo cada vez para coincidir com o servidor certo. Obviamente, não posso escrever isso, pois os resultados provavelmente serão distorcidos durante o teste.
Existe algum tipo de rastreador para o Linux que seja capaz de pegar um endereço IP, nome de domínio e trabalhá-los juntos? Eu tentei tanto curl - proxy e wget --header sem sucesso.
Muitos servidores http SSL não se importam com qual cabeçalho Host: é fornecido, portanto basta solicitar https: // $ ipaddress / foo, desde que você consiga convencer o cliente (por exemplo, wget) a ignorar a incompatibilidade CN do certificado. .
Caso contrário, tente algo como:
(echo -e 'GET /foo HTTP/1.0\r\nHost: domain.com\r\n\r'; sleep 2) | openssl s_client -connect 10.10.10.33:443 | grep "a certain string"
Você não precisa do nome do host, pode se conectar usando somente o IP e passar o domínio usando curl
.
curl -k -H "Host: your-domain-name" https://ip-of-server/someURL
O -k
fará o cURL ignorar os erros de certificado, o -H
colocará o host e o download do resultado. Você pode canalizá-lo sobre awk
, grep
ou qualquer outra ferramenta que você tenha.
Você já tentou usar o curl para se conectar ao endereço IP e sobrescrever o host? -
curl -H 'Host: domain.com' http://10.10.10.33/