61 lines
1.8 KiB
Text
61 lines
1.8 KiB
Text
|
ifdef::env-github[]
|
||
|
:important-caption: :heavy_exclamation_mark:
|
||
|
endif::[]
|
||
|
|
||
|
= Building for TLS Support
|
||
|
|
||
|
If you want to include support for Transport Layer Security
|
||
|
(tls+tcp:// and wss:// URLs) you should follow these directions.
|
||
|
|
||
|
At this time, TLS support depends on the https://tls.mbed.org/[Mbed TLS]
|
||
|
library.
|
||
|
|
||
|
IMPORTANT: Mbed TLS is licensed under different terms than NNG.
|
||
|
You are responsible for reading those license terms, and ensuring
|
||
|
that your use conforms to them.
|
||
|
|
||
|
On many distributions you may be able to install a pre-packaged version
|
||
|
of Mbed TLS. We recommend doing so if this is an option for you.
|
||
|
For example, Ubuntu users can install the `libmbedtls-dev` package.
|
||
|
|
||
|
You can also build Mbed TLS from source; if you choose to do so,
|
||
|
please make sure you also *install* it somewhere (even a temporary
|
||
|
staging directory).
|
||
|
|
||
|
== Configuring NNG with Mbed TLS
|
||
|
|
||
|
TLS support is not enabled by default, but can be enabled by configuring
|
||
|
with the CMake option `NNG_ENABLE_TLS=ON`.
|
||
|
|
||
|
By default NNG searches for an installed copy of Mbed TLS in `/usr/local`,
|
||
|
as well as the normal installation directories for libraries on your system.
|
||
|
|
||
|
If you have installed Mbed TLS elsewhere, you can direct the NNG configuration
|
||
|
to it by setting the `MBEDTLS_ROOT_DIR` CMake variable.
|
||
|
|
||
|
== Example
|
||
|
|
||
|
The following example would work on either Linux or macOS, and assumes
|
||
|
that we have checked out github source trees into `$HOME/work`.
|
||
|
It also assumes that Mbed TLS is already installed in /usr/local or
|
||
|
a standard search path.
|
||
|
|
||
|
[source, sh]
|
||
|
----
|
||
|
$ export NNGDIR=$HOME/work/nng
|
||
|
$ mkdir build
|
||
|
$ cd build
|
||
|
|
||
|
$ cmake -DNNG_ENABLE_TLS=ON ..
|
||
|
|
||
|
... (lots of lines of output from cmake...)
|
||
|
|
||
|
$ make
|
||
|
|
||
|
... (lots of lines of output from make...)
|
||
|
|
||
|
$ ./tests/tls
|
||
|
ok ./tests/tls 1.503s
|
||
|
|
||
|
----
|