Please add HTTPS proxy type to hide the traffic from provider's censure #5409

Open
opened 2026-02-21 17:50:17 -05:00 by deekerman · 8 comments
Owner

Originally created by @ache on GitHub (Apr 6, 2017).

qBittorrent version and Operating System:

3.3.11 Win10

What is the problem:

I see only HTTP, SOCKS4 and SOCKS5 proxy types.

What is the expected behavior:

I need HTTPS proxy type too.

Originally created by @ache on GitHub (Apr 6, 2017). ### qBittorrent version and Operating System: 3.3.11 Win10 ### What is the problem: I see only HTTP, SOCKS4 and SOCKS5 proxy types. ### What is the expected behavior: I need HTTPS proxy type too.
Author
Owner

@WhosAsking commented on GitHub (Apr 20, 2017):

Just wondering. If you don't want your connection to be perused, have you considered a VPN tunnel, which would be protocol-agnostic and so would work with nearly any program, including this one?

@WhosAsking commented on GitHub (Apr 20, 2017): Just wondering. If you don't want your connection to be perused, have you considered a VPN tunnel, which would be protocol-agnostic and so would work with nearly any program, including this one?
Author
Owner

@ache commented on GitHub (Apr 20, 2017):

I have a lot of free HTTPS proxies, but free VPNs are hard to find and have additional restrictions (like logging, frequently changed password, etc.)

@ache commented on GitHub (Apr 20, 2017): I have a lot of free HTTPS proxies, but free VPNs are hard to find and have additional restrictions (like logging, frequently changed password, etc.)
Author
Owner

@fbriere commented on GitHub (Apr 30, 2017):

Unless I am mistaken (please correct me if I am), both qBittorrent and libtorrent support HTTP CONNECT tunneling, so you should be able to transparently establish HTTPS connections as well.

(Keep in mind that "HTTPS proxy" is somewhat of a misnomer; the proxying itself is still HTTP-based, and will not add any encryption to the relayed traffic.)

@fbriere commented on GitHub (Apr 30, 2017): Unless I am mistaken (please correct me if I am), both qBittorrent and libtorrent support [HTTP CONNECT tunneling](https://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_tunneling), so you should be able to transparently establish HTTPS connections as well. (Keep in mind that "HTTPS proxy" is somewhat of a misnomer; the proxying itself is still HTTP-based, and will not add any encryption to the relayed traffic.)
Author
Owner

@ache commented on GitHub (Apr 30, 2017):

It is clear, that all of it is HTTP inside, but connection method is different. HTTPS proxy suppose SSL connect to it and not HTTP. Connection method comes first, then HTTP CONNECT tunneling after it, not vice versa. It is not the same thing as connect to HTTPS site via plain HTTP CONNECT tunneling, and most of trackers are not HTTPS sites in any case, even in case they will be, blocking by IP is efficient from provider's side.
I already try to use HTTPS proxy (working in browsers) blindly with no connect as result.
See example from some proxy.pac file:
return "HTTPS proxy.org:3143; PROXY proxy.org:3128; DIRECT";
First one does not work (while working in browsers), second one works.

@ache commented on GitHub (Apr 30, 2017): It is clear, that all of it is HTTP inside, but connection method is different. HTTPS proxy suppose SSL connect to it and not HTTP. Connection method comes first, then HTTP CONNECT tunneling after it, not vice versa. It is not the same thing as connect to HTTPS site via plain HTTP CONNECT tunneling, and most of trackers are not HTTPS sites in any case, even in case they will be, blocking by IP is efficient from provider's side. I already try to use HTTPS proxy (working in browsers) blindly with no connect as result. See example from some proxy.pac file: `return "HTTPS proxy.org:3143; PROXY proxy.org:3128; DIRECT"; ` First one does not work (while working in browsers), second one works.
Author
Owner

@fbriere commented on GitHub (May 1, 2017):

Ah, I had indeed wondered if something like this was actually done out there. I've now learned something new. Thanks! 😄

Unfortunately, from what I can tell, neither libtorrent nor Qt support this, so there's not much that can be done on qBittorrent's side. You might want to open an issue for libtorrent, to gauge their interest.

@fbriere commented on GitHub (May 1, 2017): Ah, I had indeed wondered if something like this was actually done out there. I've now learned something new. Thanks! :smile: Unfortunately, from what I can tell, neither libtorrent nor Qt support this, so there's not much that can be done on qBittorrent's side. You might want to open an issue for libtorrent, to gauge their interest.
Author
Owner

@ache commented on GitHub (May 4, 2017):

From Qt version 5.2 onwards, the officially supported version for OpenSSL is 1.0.0 or later as external lib. Even Qt 4.6 have some sort of OpenSSL support.

QSsl Declares enums common to all SSL classes in Qt Network
QSslCertificate Convenient API for an X509 certificate
QSslCertificateExtension API for accessing the extensions of an X509 certificate
QSslCipher Represents an SSL cryptographic cipher
QSslConfiguration Holds the configuration and state of an SSL connection
QSslDiffieHellmanParameters Interface for Diffie-Hellman parameters for servers
QSslEllipticCurve Represents an elliptic curve for use by elliptic-curve cipher algorithms
QSslError SSL error
QSslKey Interface for private and public keys
QSslPreSharedKeyAuthenticator Authentication data for pre shared keys (PSK) ciphersuites
QSslSocket SSL encrypted socket for both clients and servers
@ache commented on GitHub (May 4, 2017): From Qt version 5.2 onwards, the officially supported version for OpenSSL is 1.0.0 or later as external lib. Even Qt 4.6 have some sort of OpenSSL support. ``` QSsl Declares enums common to all SSL classes in Qt Network QSslCertificate Convenient API for an X509 certificate QSslCertificateExtension API for accessing the extensions of an X509 certificate QSslCipher Represents an SSL cryptographic cipher QSslConfiguration Holds the configuration and state of an SSL connection QSslDiffieHellmanParameters Interface for Diffie-Hellman parameters for servers QSslEllipticCurve Represents an elliptic curve for use by elliptic-curve cipher algorithms QSslError SSL error QSslKey Interface for private and public keys QSslPreSharedKeyAuthenticator Authentication data for pre shared keys (PSK) ciphersuites QSslSocket SSL encrypted socket for both clients and servers ```
Author
Owner

@fbriere commented on GitHub (May 4, 2017):

Of course, Qt supports SSL. 😄 But QNetworkProxy does not support HTTPS proxying like you suggest. (See the list of supported proxy types.)

Note that even if it did, this would not apply to torrent traffic, which is handled by libtorrent. Hence my suggestion to open an issue with that project first.

@fbriere commented on GitHub (May 4, 2017): Of course, Qt supports SSL. :smile: But `QNetworkProxy` does not support HTTPS proxying like you suggest. (See the [list of supported proxy types](https://doc.qt.io/qt-5/qnetworkproxy.html#ProxyType-enum).) Note that even if it did, this would not apply to torrent traffic, which is handled by libtorrent. Hence my suggestion to open an issue with that project first.
Author
Owner

@xavier2k6 commented on GitHub (May 23, 2025):

ANNOUNCEMENT!

For anybody coming across this "Feature Request" & would like/love to see a potential implementation in the future!
Here are some options available to you:

  1. Please select/click the 👍 &/orreactions in the original/opening post of this ticket.

  2. Please feel free (If you have the "skillset") to create a "Pull Request" implementing what's being requested in this ticket.
    (new/existing contributors/developers are always welcome)


DO:

  • Provide constructive feedback.
  • Display how other projects implemented same/similar etc.

DO NOT:

  • Add a "Bump", "me too", "2nd/3rd" etc. or "criticizing" comment(s).
    (These will be disregarded/hidden as "spam/abuse/off-topic" etc. as they don't provide anything constructive.)
@xavier2k6 commented on GitHub (May 23, 2025): ## ANNOUNCEMENT! For anybody coming across this **_"Feature Request"_** & would like/love to see a potential implementation in the future! **Here are some options available to you:** 1. Please select/click the 👍 **&/or** ❤ `reactions` in the original/opening post of this ticket. 2. Please feel free _(If you have the "skillset")_ to create a **_"Pull Request"_** implementing what's being requested in this ticket. **_(new/existing contributors/developers are always welcome)_** ____ **DO:** * Provide constructive feedback. * Display how other projects implemented same/similar etc. **DO NOT:** * Add a "Bump", "me too", "2nd/3rd" etc. or "criticizing" comment(s). **(These will be disregarded/hidden as "spam/abuse/off-topic" etc. as they don't provide anything constructive.)**
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/qBittorrent#5409
No description provided.