QT does not work with OpenSSL 1.0 anymore. Versions QT 5.12.4 and above require OpenSSL 1.1, but fortunately OpenSSL 1.1 can be easily compiled with MS2017 as follows:
set PATH=%PATH%;C:\Perl64\bin set PATH=%PATH%;C:\PFiles\nasm-2.14.02-win64 perl Configure VC-WIN64A nmake
The key to the success is using ‘VS2017 x64 Native Tools Command Prompt‘, but not ‘VS2017 Developer Command Prompt’.
To make QT use OpenSSL, two dlls
should be copied to QT binary directory, for example, C:\Qt\Qt5.13.0\5.13.0\msvc2017_64\bin
A simple check that you can run afterwards to see if this worked is call the static function QSslSocket::supportsSsl(), if this function returns true, Qt has found the openSSL binaries that you downloaded. (Of course ensure that you add Qt += network in your .pro file before running this test), see https://stackoverflow.com/questions/3516143/qt-ssl-support-missing
Linking OpenSSL statically https://stackoverflow.com/questions/24261974/how-to-build-qt5-with-openssl-support
-openssl-linked OPENSSL_LIBS=”-lssleay32 -llibeay32″
By default, an SSL-enabled Qt library dynamically loads any installed OpenSSL library at run-time. However, it is possible to link against the library at compile-time by configuring Qt with the -openssl-linked option, see https://doc.qt.io/qt-5/ssl.html
configure -openssl -I D:\OpenSSL\include -L D:\OpenSSL
When building Qt from source, the configuration system checks for the presence of the openssl/opensslv.h header provided by source or developer packages of OpenSSL.