wget не поддерживает https


9

Я хочу скачать https://example.comс помощью wgetкоманды, но она говорит «неподдерживаемый / нераспознанный протокол». Я пытался использовать, --secure protocol=''но это не работает. Я скачал файл tar из GNU wget и попытался настроить его, но мне это не удалось.

Вот пример того, что я вижу:

bash-2.05$ wget https://www.facebook.com/
https://www.facebook.com/: Unknown/unsupported protocol.
bash-2.05$

Привет, ребята, спасибо за ответы, проверенная версия моего Wget говорит, как показано ниже

bash-2.05$ wget -V
GNU Wget 1.6

Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

Originally written by Hrvoje Niksic <hniksic@arsdigita.com>.

и я понятия не имею, если мой wget скомпилирован с помощью SSL и SSL включен или нет. Не могли бы вы дать мне знать, как скомпилировать wgetкоманду. Я попытался запустить configureфайл, а затем набрал makeкоманду, которая выдает ошибку «команда не найдена». Даже после запуска файла конфигурации он не дает мне никакого wgetфайла, созданного в /usr/local/.

bash-2.05$ cd wget-1.10.1
bash-2.05$ ./configure --prefix=/usr/local --with-ssl
bash-2.05$ make
bash: make: command not found

версия, которую я скачал wget-1.10.1.tar

версия команды wget настроить команду сгенерированного журнала


Пожалуйста, обновите ваш вопрос, включив в него точный комментарий и отображаемую ошибку.
Стив

1
Кроме того, какую операционную систему и версию вы используете?
mjturner

1. Что вы пытаетесь получить с помощью wget, поскольку для wget обычно требуется URL, содержащий файл? 2. Скомпилирован ли ваш wget с поддержкой SSL? 3. Действительно bash-2.05ли ваша версия Bash? Мой 4.3.33.
eyoung100

1
Это встроенная система? Такое ощущение, что это на самом деле что-то вроде busyboxверсии wget.
Ройма

1
@roaima Сообщение, которое я получаю от Busybox, wget: not an http or ftp url: …похоже, что это не GNU wget и не Busybox. В любом случае, очевидно, что он не поддерживает HTTPS, и решение состоит в том, чтобы установить другую версию или другой инструмент, который поддерживает HTTPS.
Жиль "ТАК - перестань быть злым"

Ответы:


8

Решение

Убедитесь, что ваш wgetбинарный файл скомпилирован с поддержкой SSL. Мой вывод при попытке команды, которую вы дали:

$ wget https://www.facebook.com
--2015-07-19 15:27:17--  https://www.facebook.com/
Resolving www.facebook.com (www.facebook.com)... 31.13.66.1, 2a03:2880:f013:1:face:b00c:0:1
Connecting to www.facebook.com (www.facebook.com)|31.13.66.1|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://www.facebook.com/unsupportedbrowser [following]
--2015-07-19 15:27:18--  https://www.facebook.com/unsupportedbrowser
Reusing existing connection to www.facebook.com:443.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’

index.html                                                              [ <=>                                                                                                                                                                 ]  29.21K  --.-KB/s   in 0.04s  

2015-07-19 15:27:18 (775 KB/s) - ‘index.html’ saved [29916]

$

При отсутствии полностью квалифицированного URL-адреса загружается страница по умолчанию, index.htmlкоторая содержит теги и т. Д. Вся эта страница сообщит мне, что при просмотре через браузер мой браузер не поддерживается, другими словами: мы не поддерживаем выбор страниц через wget.

$ eix wget

[I] net-misc/wget
     Available versions:  1.16 ~1.16.1 ~1.16.2 ~1.16.3 {debug gnutls idn ipv6 nls ntlm pcre +ssl static test uuid zlib}
     Installed versions:  1.16(11:25:57 AM 07/19/2015)(idn ipv6 nls pcre ssl zlib -debug -gnutls -ntlm -static -test -uuid)
     Homepage:            http://www.gnu.org/software/wget/
     Description:         Network utility to retrieve files from the WWW

За комментарий

Вот как выглядит вывод версии, если вы никогда не видели вывод на основе Gentoo (заметка -DHAVE_LIBSSL):

$ wget -V
wget -V
GNU Wget 1.16 built on linux-gnu.

+digest +https +ipv6 +iri +large-file +nls -ntlm +opie -psl +ssl/openssl 

Wgetrc: 
    /etc/wgetrc (system)
Locale: 
    /usr/share/locale 
Compile: 
    x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H 
    -DSYSTEM_WGETRC="/etc/wgetrc" -DLOCALEDIR="/usr/share/locale" -I. 
    -I../lib -I../lib -DHAVE_LIBSSL -march=amdfam10 -O2 -pipe 
Link: 
    x86_64-pc-linux-gnu-gcc -DHAVE_LIBSSL -march=amdfam10 -O2 -pipe 
    -Wl,-O1 -Wl,--as-needed -lpcre -lssl -lcrypto -lz -lidn ftp-opie.o 
    openssl.o ../lib/libgnu.a 

Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://www.gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Originally written by Hrvoje Niksic <hniksic@xemacs.org>.
Please send bug reports and questions to <bug-wget@gnu.org>.

Обратите внимание, что ssl не содержит минуса в строке «Установленные версии» из выходных данных на основе Gentoo, что означает, что я включил поддержку SSL на моем Gentoo box. Для того, чтобы идти дальше, пожалуйста, обновите свой вопрос с помощью вашего дистрибутива.


wget -Vдолжна включать строку, показывающую поддержку https. На моем Монетном дворе 17 установка по умолчанию возвращается+digest +https +ipv6 +iri +large-file +nls +ntlm +opie +ssl/openssl
Стив

@steve Я добавлю что- wget -V то, что говорит мне, что здесь происходит нечто большее, так как его версия bash 2.05 ...
eyoung100

2

Попробуйте удалить "s" ... Я имею в виду просто использовать http.

В большинстве случаев происходит активное перенаправление с http на https, и кажется, что wget работает с ним.

Нажмите на адрес в вашем браузере с простым http, и если вы будете перенаправлены на https, ваш wget, вероятно, будет работать.

Так.. wget http://example.com/file


2

В случае, если кто-то еще сталкивается с этой ошибкой из vmWare ESXi или другой среды BusyBox, вы фактически не используете wget:

Вывод wget -Vдля меня:

wget: invalid option -- 'V'
BusyBox v1.22.1 (2018-07-23 19:34:44 PDT) multi-call binary.

Usage: wget [-csq] [-O FILE] [-Y on/off] [-P DIR] [-U AGENT] URL...

Retrieve files via HTTP or FTP

    -s  Spider mode - only check file existence
    -c  Continue retrieval of aborted transfer
    -q  Quiet
    -P DIR  Save to DIR (default .)
    -O FILE Save to FILE ('-' for stdout)
    -U STR  Use STR for User-Agent header
    -Y  Use proxy ('on' or 'off')

Так что тебе не повезло. Передайте файл, используя другой метод, такой как SCP, с вашей рабочей станции.


https over wgetподдерживается после ESXi 6.7 Обновление 2
Дарио Задро

Возможно, решение для этого просто создать новую виртуальную машину и загрузить ее с Linux LiveCD. После загрузки войдите в виртуальную машину и загрузите все, что вам нужно, с помощью cURL или wget. На ESXi включите ssh, а затем скопируйте файл с виртуальной машины на ESXi. Я просто сделал это и работает нормально. Это двухэтапный процесс, но он очень полезен, если вы физически не находитесь в одной сети, а файл большой
Eduar
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.