2015-06-13 18 views
15

sto cercando di scaricare i file da un sito HTTPS e continuo a ricevere il seguente errore:ssl wget mancato avviso stretta di mano

OpenSSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure 
Unable to establish SSL connection. 

Da leggere i blog on-line ho raccogliere devo fornire il CERT del server e il CERT cliente. Ho trovato i passaggi su come scaricare il certificato del server ma non il certificato del cliente. Qualcuno ha una serie completa di passaggi per utilizzare wget con SSL? Ho anche provato l'opzione --no-check-certificate ma non ha funzionato.

versione wget: wget-1.13.4 versione OpenSSL: OpenSSL 1.0.1f 6 Gennaio 2014

cercando di scaricare tutte le risorse di conferenza dalla pagina web di un corso di coursera.org. Quindi, l'URL sarebbe simile al seguente: https://class.coursera.org/matrix-002/lecture

L'accesso a questa pagina Web in linea richiede l'autenticazione del modulo, non è sicuro se ciò sta causando l'errore.

+0

Questo potrebbe essere qualsiasi cosa, come protocollo non supportato, cifrari, SNI ..... Ma di solito non è correlato alla convalida del certificato del server. Aggiungi ulteriori dettagli come la versione di wget, la versione di openssl e il sito a cui stai tentando di accedere. Utilizza anche 'wget -v --debug'. –

+0

Commento eliminato – sotn

risposta

21

Funziona da qui con la stessa versione di OpenSSL, ma una versione più recente di wget (1.15). Guardando il Changelog v'è il seguente cambiamento significativo per quanto riguarda il problema:

1.14: Add support for TLS Server Name Indication.

Si noti che questo sito non richiede SNI. Ma lo richiede www.coursera.org. E se si sarebbe chiamata wget con -v --debug (come ho esplicitamente raccomandato nel mio commento!) Si vedrà:

$ wget https://class.coursera.org 
... 
HTTP request sent, awaiting response... 
    HTTP/1.1 302 Found 
... 
Location: https://www.coursera.org/ [following] 
... 
Connecting to www.coursera.org (www.coursera.org)|54.230.46.78|:443... connected. 
OpenSSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure 
Unable to establish SSL connection. 

Così l'errore si verifica in realtà con www.coursera.org e il motivo non è presente il supporto per SNI. Devi aggiornare la tua versione di wget.

+1

Darà uno scatto e l'aggiornamento. – sotn

+0

Mai pensato di aggiornare wget. Grazie per il suggerimento! –

+0

Quindi, se stiamo lavorando su un server RHEL 6 come utente senza possibilità di aggiornare * qualsiasi * pacchetto, come possiamo superare questo problema? – Vitor

0

In sostanza, OpenSSL utilizza SSLv3 e il sito a cui si sta accedendo non supporta tale protocollo.

Basta aggiornare il wget:

sudo apt-get install wget

Oppure, se si sta già sostenendo un altro protocollo sicuro, basta aggiungerlo come argomento:

wget https://example.com --secure-protocol=PROTOCOL_v1

0

ero in SLES12 e per me ha funzionato dopo l'aggiornamento a wget 1.14, usando --secure-protocol = TLSv1.2 e usando --auth-no-challenge.

wget --no-check-certificate --secure-protocol=TLSv1.2 --user=satul --password=xxx --auth-no-challenge -v --debug https://jenkins-server/artifact/build.x86_64.tgz 
Problemi correlati