60 lines
1.8 KiB
Text
60 lines
1.8 KiB
Text
ifdef::env-github[]
|
|
:important-caption: :heavy_exclamation_mark:
|
|
endif::[]
|
|
|
|
= Building for TLSv1.2 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 mbedTLS library.
|
|
See https://tls.mbed.org/ for details.
|
|
|
|
IMPORTANT: mbedTLS 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 mbedTLS. 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 mbedTLS from source; if you choose to do so,
|
|
please make sure you also *install* it somewhere (even a temporary
|
|
staging directory).
|
|
|
|
== Configuring NNG with mbedTLS
|
|
|
|
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 mbedTLS in `/usr/local`,
|
|
as well as the normal installation directories for libraries on your system.
|
|
|
|
If you have installed mbedTLS 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 mbedTLS 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
|
|
|
|
----
|