Why do I get "Protocol http not supported or disabled in libcurl"?

11,957

Solution 1

I found Thread: zypper https urls: Protocol "http" not supported or disabled in libcurl, which contains a link to Thread: Cached files in /home/~/.cache/kioexec/krun/####_# ? How to avoid?

Following what said in those posts, I tried curl https://download.opensuse.org/repositories/devel:languages:php/openSUSE_Leap_42.3/devel:languages:php.repo, which outputs the following.

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://download.opensuse.org/repositories/devel:languages:/php/openSUSE_Leap_42.3/devel:languages:php.repo">here</a>.</p>
<hr>
<address>Apache/2.2.34 (Linux/SUSE) Server at download.opensuse.org Port 443</address>
</body></html>

So, https://download.opensuse.org/repositories/devel:languages:php/openSUSE_Leap_42.3/devel:languages:php.repo is redirected to http://download.opensuse.org/repositories/devel:languages:/php/openSUSE_Leap_42.3/devel:languages:php.repo and, since the redirect is from https:// to http://, it is not followed by Zypper.

In short, the server is not yet working using https:// URLs, and the temporary work-around is to use http:// URLs. Nothing is wrong in my OpenSuse 42.3 installation.

Solution 2

As a workaround, you can manually add (as root) the following file under /etc/zypp/repos.d/php.repo with contents

[devel_languages_php]
name=devel:languages:php (openSUSE_Leap_42.3)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/devel:/languages:/php/openSUSE_Leap_42.3/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/devel:/languages:/php/openSUSE_Leap_42.3/repodata/repomd.xml.key
enabled=1

which is the contents of the above URL: http://download.opensuse.org/repositories/devel:/languages:/php/openSUSE_Leap_42.3/devel:languages:php.repo

Share:
11,957

Related videos on Youtube

apaderno
Author by

apaderno

Updated on September 18, 2022

Comments

  • apaderno
    apaderno over 1 year

    I am trying to add a repository to my OpenSUSE Leap 42.3 (running on WSL) with the following command.

    sudo zypper addrepo https://download.opensuse.org/repositories/devel:languages:php/openSUSE_Leap_42.3/devel:languages:php.repo
    

    I get the following error.

    Download (curl) error for 'https://download.opensuse.org/repositories/devel:languages:php/openSUSE_Leap_42.3/devel:languages:php.repo': Error code: Bad URL Error message: Protocol http not supported or disabled in libcurl

    I find confusing the fact the error message is talking about http when I am using https as protocol, and still more confusing that the output of curl --version suggests https is a supported protocol.

    curl 7.37.0 (x86_64-suse-linux-gnu) libcurl/7.37.0 OpenSSL/1.0.2j zlib/1.2.8 libidn/1.28 libssh2/1.4.3
    Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
    Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

    With zypper info libssl43, I get the following output.

    Information for package libssl43:
    ---------------------------------
    Repository     : oss
    Name           : libssl43
    Version        : 2.5.3-6.1
    Arch           : x86_64
    Vendor         : openSUSE
    Installed Size : 360.0 KiB
    Installed      : Yes
    Status         : up-to-date
    Source package : libressl-2.5.3-6.1.src
    Summary        : An SSL/TLS protocol implementation
    Description    :
        LibreSSL is an open-source implementation of the Secure Sockets Layer
        (SSL) and Transport Layer Security (TLS) protocols. It derives from
        OpenSSL and intends to provide a more secure implementation.
    

    The output of zypper info libcrypto41 is the following. (libcrypto41 is a dependency of libssl43.)

    Information for package libcrypto41:
    ------------------------------------
    Repository     : oss
    Name           : libcrypto41
    Version        : 2.5.3-6.1
    Arch           : x86_64
    Vendor         : openSUSE
    Installed Size : 2.0 MiB
    Installed      : Yes (automatically)
    Status         : up-to-date
    Source package : libressl-2.5.3-6.1.src
    Summary        : An SSL/TLS protocol implementation
    Description    :
        The "crypto" library implements a wide range of cryptographic
        algorithms used in various Internet standards. The services provided
        by this library are used by the LibreSSL implementations of SSL, TLS
        and S/MIME, and they have also been used to implement SSH, OpenPGP,
        and other cryptographic standards.
    

    How can I use https URLs? I could instead use http, but I would prefer not going through that path.

    • daisy
      daisy over 6 years
      looks like libssl issue
    • Dirk
      Dirk over 5 years
      For everyone facing this: Before debugging your ssl libraries, make sure to check your URLs, especially when being created dynamically. Slight typos like https :// (note the space) just (mis-)lead me to this error message.