10

I want to download https://example.com using the wget command, but it says “unsupported/unrecognized protocol”. I tried using the --secure protocol='' but that does not work. I downloaded the tar file from GNU wget and tried configuring that but I failed.

Here is an example of what I see:

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

Hi folks thanks for the answers, the verified the version of my wget it says as below

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 <[email protected]>.

and I have no idea if my wget is compiled by SSL and the SSL is enabled or not. Could you please let me know how to compile the wget command. I tried running the configure file and then typed make command, that gives me command not found error. Even after running the configuration file it does not give me any wget file created in /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

the version I downloaded is wget-1.10.1.tar

wget command version configure command generated log

8
  • Please update your question to include the exact comment being run and the exact error being displayed.
    – steve
    Jul 19, 2015 at 16:54
  • 1
    Also, what operating system and version are you using?
    – mjturner
    Jul 19, 2015 at 18:03
  • 1. What are you trying to get with wget, as wget normally requires a URL containing a file? 2. Is your wget compiled with SSL support? 3. Is bash-2.05 really your bash version? Mine is 4.3.33.
    – eyoung100
    Jul 19, 2015 at 20:46
  • 1
    Is this an embedded system? It feels like this is actually something like a busybox version of wget. Jul 19, 2015 at 21:07
  • 1
    @roaima The message I get from Busybox is wget: not an http or ftp url: … This seems to be neither GNU wget nor Busybox. Either way, it obviously doesn't support HTTPS and the solution is to install a different version or a different tool that supports HTTPS. Jul 19, 2015 at 21:57

3 Answers 3

7

Solution

Verify your wget binary is compiled with SSL support enabled. My output when I try the command you gave:

$ 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]

$

Given no fully Qualified URL downloads the default page index.html which contains tags etc. All this page will tell me when viewed via a browser is that my browser is not supported, in other words: We don't support fetching of pages via 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

Per Comment

Here's what a version output looks like, in case you've never seen Gentoo based output (Notice -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 <[email protected]>.
Please send bug reports and questions to <[email protected]>.

Notice that ssl does not contain a minus in the Installed Versions line from the Gentoo based output, meaning I have compiled SSL support on my Gentoo box. In order to go further, would you please update your question with your distribution.

2
  • wget -V should include a line showing https support. On my Mint 17 default install is returns +digest +https +ipv6 +iri +large-file +nls +ntlm +opie +ssl/openssl
    – steve
    Jul 19, 2015 at 20:46
  • @steve I'll add a wget -V Something tells me there is more going on here as his bash version is 2.05...
    – eyoung100
    Jul 19, 2015 at 20:49
7

In case anyone else is coming across this error from within vmWare ESXi or another BusyBox environment, you aren't actually using wget:

Output from wget -V for me:

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')

So you're out of luck. Transfer the file using a different method such as SCP from your workstation.

3
  • 2
    https over wget is supporting after ESXi 6.7 Update 2 Apr 13, 2020 at 20:11
  • 1
    Maybe a solution for this is just to create a new VM and boot it with a Linux LiveCD. Once it boots, login to the VM, download whatever you need with cURL or wget. On ESXi, enable ssh, and then scp the file from the VM to ESXi. I just did it and works OK. It's a two-step process, but it's very helpful if you're not physically on the same network and the file is big
    – Eduar
    May 28, 2020 at 12:41
  • crazy that this is a thing.
    – clk
    Nov 3, 2022 at 12:37
5

Try removing the "s"... I mean just use http.

Most of the times there is a redirection from http to https active and wget seems to work with it.

Hit the address in your browser with plain http and if you get redirected to https your wget will probably work.

So.. wget http://example.com/file

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .