# HTTPS/SSL support for linux

**URL:** <https://forum.juce.com/t/https-ssl-support-for-linux/15122>\
**Category:** Linux\
**Created:** [July 15, 2015, 10:13am UTC](https://forum.juce.com/t/https-ssl-support-for-linux/15122 "2015-07-15T10:13:16Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![fr810](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/fr810/32/841_2.png) [@fr810](https://forum.juce.com/u/fr810)\
**Post date:** [July 15, 2015, 10:13am UTC](https://forum.juce.com/t/https-ssl-support-for-linux/15122/1 "2015-07-15T10:13:16Z")

</div>

Hi all,

Just a heads up that https/ssl support on Linux has now been added to JUCE. Currently, by default, HTTPS/SSL support will be disabled by the introjucer so that&nbsp;no&nbsp;additional dependencies are introduced&nbsp;to already existing JUCE projects. To enable it you will&nbsp;need to rebuild the newest Introjucer (from latest tip on github!) and&nbsp;click on the "juce\_core" module in the "Config" tab&nbsp;and select "ENABLED" under "JUCE\_USE\_CURL" on the right hand side. If you use an old version of Introjucer then you will get linker errors!

Additionally, you will need to install the libcurl development files to use this feature.&nbsp;For example, on Ubuntu/Debian the following should work:

```
sudo apt-get install libcurl4-gnutls-dev
```

Note, that the users of your app do not need to install libcurl-dev development files (headers etc). All they need is libcurl which is installed by default on nearly all linux distributions.

Fabian

---

<div class="post-metadata">

**Author:** ![loopfine](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/loopfine/32/141_2.png) [@loopfine](https://forum.juce.com/u/loopfine)\
**Post date:** [July 15, 2015, 2:23pm UTC](https://forum.juce.com/t/https-ssl-support-for-linux/15122/2 "2015-07-15T14:23:00Z")

</div>

Great news!

It will soon be done on other platforms, won't it?&nbsp;On OSX, it's nearly the same with Linux...

I hope&nbsp;JUCE will use libcurl to improve its URL class eventually, provides upload, download, ftp manage etc... cURL is a free, powerful library, I'm&nbsp;confused&nbsp;why JUCE didn't use&nbsp;it...

Recently, I wrote&nbsp;a FtpProcessor class, based on Dave96's dRowAudio cURL module, I changed and expanded a little bit, made it ftp manager functions (such as delete, rename, create, move remote file and dir...), &nbsp;using the lastest x64 cURL static library. It works nice on Windows, OSX and Linux, haven't tested it on iOS. But, it's so difficult to compile and link the library on Android, I'm still struggling on it...

---

<div class="post-metadata">

**Author:** ![fr810](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/fr810/32/841_2.png) [@fr810](https://forum.juce.com/u/fr810)\
**Post date:** [July 15, 2015, 2:56pm UTC](https://forum.juce.com/t/https-ssl-support-for-linux/15122/3 "2015-07-15T14:56:31Z")

</div>

https/ssl support already works on all other platforms ;-)

---

<div class="post-metadata">

**Author:** ![loopfine](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/loopfine/32/141_2.png) [@loopfine](https://forum.juce.com/u/loopfine)\
**Post date:** [July 15, 2015, 3:12pm UTC](https://forum.juce.com/t/https-ssl-support-for-linux/15122/4 "2015-07-15T15:12:45Z")

</div>

oh, sorry, my fault. I thought it was&nbsp;a start point that juce begin to use curl to improve its URL class...

---

<div class="post-metadata">

**Author:** ![dave96](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/dave96/32/8487_2.png) [@dave96](https://forum.juce.com/u/dave96)\
**Post date:** [July 15, 2015, 3:13pm UTC](https://forum.juce.com/t/https-ssl-support-for-linux/15122/5 "2015-07-15T15:13:50Z")

</div>

Hi Fabian, you mention libcurl comes with almost all Linux distros, do you know if all of these are built with SSL capabilities?&nbsp;Years ago I had to build libcurl for static linkage but building it with SSL was a real pain due to all the complex dependencies.

I'm just wondering if we build this into our apps and only allow https connections to our server how likely it is to fail? I'm assuming not very?

---

<div class="post-metadata">

**Author:** ![fr810](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/fr810/32/841_2.png) [@fr810](https://forum.juce.com/u/fr810)\
**Post date:** [July 15, 2015, 8:40pm UTC](https://forum.juce.com/t/https-ssl-support-for-linux/15122/6 "2015-07-15T20:40:46Z")

</div>

I seem to remember that statically linking to libcurl will disable&nbsp;https/SSL&nbsp;by default (not entirely sure though) and enabling this is highly discouraged.&nbsp;This is because libcurl comes with different SSL backends which will be dynamically linked in (for exmaple on Ubuntu it typically uses GNU TLS) and the backends should never be linked in statically - as for example - the root certificate storage&nbsp;is usually&nbsp;distribution dependant and details may change when vunerabilities have been discovered.

Therefore, as long as you link to libcurl dynamically, I would be very surprised if a distribution would not support https/SSL. You can check if your binary dynamically links to libcurl by running 'ldd' on it.

This could be a problem if you are linking your entire build as a static executable (using '-static' in the linking step) as then libcurl would also be pulled in statically (and SSL/https would likely be disabled). If this is a problem then I can make JUCE use dlopen etc. to load the dynamic library version of curl at runtime.

---

<div class="post-metadata">

**Author:** ![ivnrdc](https://avatars.discourse-cdn.com/v4/letter/i/919ad9/32.png) [@ivnrdc](https://forum.juce.com/u/ivnrdc)\
**Post date:** [July 18, 2015, 5:35pm UTC](https://forum.juce.com/t/https-ssl-support-for-linux/15122/7 "2015-07-18T17:35:32Z")

</div>

Hi, is the linker option "-lcurl" added to LDFLAGS automatically when JUCE\_USE\_CURL is enabled?

---

<div class="post-metadata">

**Author:** ![fr810](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/fr810/32/841_2.png) [@fr810](https://forum.juce.com/u/fr810)\
**Post date:** [July 19, 2015, 8:31am UTC](https://forum.juce.com/t/https-ssl-support-for-linux/15122/8 "2015-07-19T08:31:07Z")

</div>

Yes, but only if you build the introjucer from the latest github tip yourself.
