Reconfirming, OpenSSL 1.0.2 works fine with Haproxy 1.8.
Even OpenSSL 0.9.8 still works with Haproxy 1.8:
lukas@dev:~/haproxy-1.8$ ./haproxy -vv
HA-Proxy version 1.8.14-a873c1-41 2018/10/29
Copyright 2000-2018 Willy Tarreau <firstname.lastname@example.org>
Build options :
TARGET = linux2628
CPU = generic
CC = gcc
CFLAGS = -O2 -g -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -Wno-unused-label
OPTIONS = USE_OPENSSL=1
Default settings :
maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200
Built with OpenSSL version : OpenSSL 0.9.8zg 11 Jun 2015
Running on OpenSSL version : OpenSSL 0.9.8zg 11 Jun 2015
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : SSLv3 TLSv1.0
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND
Encrypted password support via crypt(3): yes
Built with multi-threading support.
Built without PCRE or PCRE2 support (using libc's regex instead)
Built without compression support (neither USE_ZLIB nor USE_SLZ are set).
Compression algorithms supported : identity("identity")
Built with network namespace support.
Available polling systems :
epoll : pref=300, test result OK
poll : pref=200, test result OK
select : pref=150, test result OK
Total: 3 (3 usable), will use epoll.
Available filters :
If you are developing a new openssl module, I would suggest you do that with OpenSSL 1.1.1 instead though. Upstream OpenSSL will drop support for OpenSSL 1.0.2 in about a year:
OpenSSL 1.1.1 is where you want to base your development effort on.