WGET Continue sem --no-check-certificate

0

Estou usando o wget para verificar se várias caixas têm acesso a outros servidores. O problema é que, às vezes, os servidores tentam se autoassinar e o script trava quando isso acontece. Ele simplesmente pára na linha

 To connect to www.google.com insecurely, use '--no-check-certificate'.

Eu não necessariamente quero fazer --no-check-certificate, pois tudo que eu preciso é desta linha:

 Connecting to https://www.google.com|xx.xxx.xxx.xxx... connected

e eu entendo que o certificado de cheque não é necessariamente uma opção segura.

Existe uma maneira de fazer com que o wget pare, limite o tempo ou cancele, caso encontre um servidor com um certificado autoassinado?

EDIT: Esqueci de mencionar que estou no SunOS 10 com o WGET 1.12. Um exemplo da linha wget que estou usando é

variable[i]=$(wget -O- --no-http-keep-alive https://www.google.com | grep connected)
    
por mkingsbu 28.07.2015 / 20:35

1 resposta

2

Qual propriedade de segurança você quer?

HTTPS com um certificado verificado fornece garantia criptográfica de que o servidor é o esperado. Se você precisar desse nível de garantia, os certificados auto-assinados não funcionarão, a menos que sejam pré-compartilhados. Se você tiver certificados pré-compartilhados, passe-os para wget com a opção --ca-certificate .

Sem HTTPS, uma solicitação como wget http://www.example.com está sujeita a dois tipos de ataques:

  • Um ataque ao DNS, fazendo com que um endereço IP incorreto pertencente ao invasor seja retornado por www.example.com .
  • Um ataque ao roteamento IP, permitindo que o invasor receba e envie pacotes como o endereço IP de www.example.com .

Se você estiver fazendo essas solicitações em uma rede local, essas ameaças geralmente não são uma preocupação. Se você não se importa com essas ameaças, porque você tem segurança física suficiente ou porque está tudo bem se o seu software de monitoramento é enganado, então você não precisa de HTTPS. Se os servidores responderem apenas ao HTTPS, você poderá usar --no-check-certificate se não se importar com essas ameaças.

Se você quiser testar apenas se o servidor da Web está respondendo, wget é um exagero. Você pode usar curl --head para fazer uma solicitação HEAD em vez de uma GET para economizar tráfego. Você pode usar openssl s_client -connect www.example.com:443 </dev/null para iniciar uma conexão HTTPS e desconectar imediatamente sem enviar dados dentro da conexão TLS.

    
por 29.07.2015 / 03:29

Tags