====== Howto switch to OpenSSL 1.0 for TLS Connections ======
===== Debian and Ubuntu =====
First of all you need to make and install OpenSSL 1.0.2r from source.
sudo apt install build-essential checkinstall zlib1g-dev -y
cd /usr/src
wget https://www.openssl.org/source/openssl-1.0.2r.tar.gz
tar -xvzf openssl-1.0.2r.tar.gz
cd openssl-1.0.2r
./config -d --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
make test
make install
nano /etc/ld.so.conf.d/openssl-1.0.2r.conf
Add this line and save:
/usr/local/ssl/lib
sudo ldconfig -v
mv /usr/bin/c_rehash /usr/bin/c_rehash.BEKUP
mv /usr/bin/openssl /usr/bin/openssl.BEKUP
export PATH=$PATH:/usr/local/ssl/bin
Link binaries to path:
sudo ln -s /usr/local/ssl/bin/c_rehash /usr/bin/c_rehash
sudo ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
Restart.
sudo shutdown -r now
Check OpenSSL path, should return '/usr/bin/openssl'.
which openssl
Check OpenSSL version, should return 'OpenSSL 1.0.2r 26 Feb 2019'.
openssl version
Modify '/usr/src/kamailio/src/modules/tls/makefile'.
Change this:
ifneq ($(SSL_BUILDER),)
DEFS += $(shell $(SSL_BUILDER) --cflags)
LIBS += $(shell $(SSL_BUILDER) --libs)
else
DEFS += -I$(LOCALBASE)/ssl/include
LIBS += -L$(LOCALBASE)/lib -L$(LOCALBASE)/ssl/lib \
-L$(LOCALBASE)/lib64 -L$(LOCALBASE)/ssl/lib64 \
-lssl -lcrypto
# NOTE: depending on the way in which libssl was compiled you might
# have to add -lz -lkrb5 (zlib and kerberos5).
# E.g.: make TLS_HOOKS=1 TLS_EXTRA_LIBS="-lz -lkrb5"
endif
To this:
DEFS+= -I/usr/local/ssl/include
LIBS+= -L/usr/local/ssl/lib \
-lssl -lcrypto
Make clean, make and make install:
cd /usr/src/kamailio/src/modules/tls
make clean
make
make install