diff -ur qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslcertificate_openssl.cpp qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslcertificate_openssl.cpp
--- qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslcertificate_openssl.cpp	2017-11-30 14:49:46.000000000 +0100
+++ qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslcertificate_openssl.cpp	2017-12-27 13:59:34.260960930 +0100
@@ -607,7 +607,7 @@
         unsigned char *data = 0;
         int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e));
         info.insertMulti(name, QString::fromUtf8((char*)data, size));
-#if QT_CONFIG(opensslv11)
+#if QT_CONFIG(opensslv11) && !defined(LIBRESSL_VERSION_NUMBER)
         q_CRYPTO_free(data, 0, 0);
 #else
         q_CRYPTO_free(data);
diff -ur qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp
--- qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp	2017-11-30 14:49:46.000000000 +0100
+++ qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp	2017-12-27 14:02:57.830968044 +0100
@@ -75,7 +75,7 @@
     //     Without the test, the IETF parameters would
     //     fail validation. For details, see Diffie-Hellman
     //     Parameter Check (when g = 2, must p mod 24 == 11?).
-#if QT_CONFIG(opensslv11)
+#if QT_CONFIG(opensslv11) && !defined(LIBRESSL_VERSION_NUMBER)
     // Mark p < 1024 bits as unsafe.
     if (q_DH_bits(dh) < 1024)
         return false;
diff -ur qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslellipticcurve_openssl.cpp qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslellipticcurve_openssl.cpp
--- qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslellipticcurve_openssl.cpp	2017-11-30 14:49:46.000000000 +0100
+++ qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslellipticcurve_openssl.cpp	2017-12-26 17:12:07.030821829 +0100
@@ -83,7 +83,7 @@
     const QByteArray curveNameLatin1 = name.toLatin1();
     int nid = q_OBJ_sn2nid(curveNameLatin1.data());
 
-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(LIBRESSL_VERSION_NUMBER)
     if (nid == 0 && QSslSocket::sslLibraryVersionNumber() >= 0x10002000L)
         nid = q_EC_curve_nist2nid(curveNameLatin1.data());
 #endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
diff -ur qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslkey_openssl.cpp qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslkey_openssl.cpp
--- qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslkey_openssl.cpp	2017-11-30 14:49:46.000000000 +0100
+++ qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslkey_openssl.cpp	2017-12-27 20:16:36.315084870 +0100
@@ -299,7 +299,7 @@
     QByteArray output;
     output.resize(data.size() + EVP_MAX_BLOCK_LENGTH);
 
-#if QT_CONFIG(opensslv11)
+#if QT_CONFIG(opensslv11) && !defined(LIBRESSL_VERSION_NUMBER)
     q_EVP_CIPHER_CTX_reset(ctx);
 #else
     q_EVP_CIPHER_CTX_init(ctx);
@@ -330,7 +330,7 @@
         reinterpret_cast<unsigned char *>(output.data()) + len, &i);
     len += i;
 
-#if QT_CONFIG(opensslv11)
+#if QT_CONFIG(opensslv11) && !defined(LIBRESSL_VERSION_NUMBER)
     q_EVP_CIPHER_CTX_reset(ctx);
     q_EVP_CIPHER_CTX_free(ctx);
 #else
diff -ur qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslsocket_openssl.cpp qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslsocket_openssl.cpp
--- qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslsocket_openssl.cpp	2017-11-30 14:49:46.000000000 +0100
+++ qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslsocket_openssl.cpp	2017-12-27 21:28:18.948568574 +0100
@@ -437,7 +437,7 @@
 */
 void QSslSocketPrivate::resetDefaultCiphers()
 {
-#if QT_CONFIG(opensslv11)
+#if QT_CONFIG(opensslv11) && !defined(LIBRESSL_VERSION_NUMBER) 
     SSL_CTX *myCtx = q_SSL_CTX_new(q_TLS_client_method());
 #else
     SSL_CTX *myCtx = q_SSL_CTX_new(q_SSLv23_client_method());
diff -ur qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslsocket_opensslpre11.cpp qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslsocket_opensslpre11.cpp
--- qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslsocket_opensslpre11.cpp	2017-11-30 14:49:46.000000000 +0100
+++ qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslsocket_opensslpre11.cpp	2017-12-27 21:20:45.465219392 +0100
@@ -405,7 +405,7 @@
     }
 #endif // OPENSSL_VERSION_NUMBER >= 0x1000100fL ...
 
-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(LIBRESSL_VERSION_NUMBER)
     if (q_SSLeay() >= 0x10002000L && mode == QSslSocket::SslClientMode) {
         EVP_PKEY *key;
         if (q_SSL_get_server_tmp_key(ssl, &key))
diff -ur qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp
--- qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp	2017-11-30 14:49:46.000000000 +0100
+++ qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp	2017-12-27 20:09:13.265069392 +0100
@@ -137,7 +137,7 @@
 
 #endif // QT_LINKED_OPENSSL
 
-#if QT_CONFIG(opensslv11)
+#if QT_CONFIG(opensslv11) && !defined(LIBRESSL_VERSION_NUMBER)
 
 // Below are the functions first introduced in version 1.1:
 
@@ -843,7 +843,7 @@
     static bool symbolsResolved = false;
     static bool triedToResolveSymbols = false;
 #ifndef QT_NO_THREAD
-#if QT_CONFIG(opensslv11)
+#if QT_CONFIG(opensslv11) && !defined(LIBRESSL_VERSION_NUMBER)
     QMutexLocker locker(QMutexPool::globalInstanceGet((void *)&q_OPENSSL_init_ssl));
 #else
     QMutexLocker locker(QMutexPool::globalInstanceGet((void *)&q_SSL_library_init));
diff -ur qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h
--- qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h	2017-11-30 14:49:46.000000000 +0100
+++ qt-everywhere-src-5.10.0/qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h	2017-12-27 13:29:18.320897464 +0100
@@ -216,7 +216,7 @@
 
 #endif // !defined QT_LINKED_OPENSSL
 
-#if QT_CONFIG(opensslv11)
+#if QT_CONFIG(opensslv11) && !defined(LIBRESSL_VERSION_NUMBER)
 #include "qsslsocket_openssl11_symbols_p.h"
 #else
 #include "qsslsocket_opensslpre11_symbols_p.h"
@@ -232,7 +232,7 @@
 int q_BIO_read(BIO *a, void *b, int c);
 Q_AUTOTEST_EXPORT int q_BIO_write(BIO *a, const void *b, int c);
 int q_BN_num_bits(const BIGNUM *a);
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
 int q_BN_is_word(BIGNUM *a, BN_ULONG w);
 #else
 // BN_is_word is implemented purely as a
@@ -452,11 +452,11 @@
 
 // EC curves management
 size_t q_EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems);
-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(LIBRESSL_VERSION_NUMBER)
 int q_EC_curve_nist2nid(const char *name);
 #endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
 #endif // OPENSSL_NO_EC
-#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(LIBRESSL_VERSION_NUMBER)
 #define q_SSL_get_server_tmp_key(ssl, key) q_SSL_ctrl((ssl), SSL_CTRL_GET_SERVER_TMP_KEY, 0, (char *)key)
 #endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
 
diff -ur qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/ssl.pri qt-everywhere-src-5.10.0/qtbase/src/network/ssl/ssl.pri
--- qt-everywhere-src-5.10.0.orig/qtbase/src/network/ssl/ssl.pri	2017-11-30 14:49:46.000000000 +0100
+++ qt-everywhere-src-5.10.0/qtbase/src/network/ssl/ssl.pri	2017-12-27 21:12:45.411869282 +0100
@@ -68,17 +68,9 @@
                    ssl/qsslsocket_openssl.cpp \
                    ssl/qsslcontext_openssl.cpp
 
-        qtConfig(opensslv11) {
-            HEADERS += ssl/qsslsocket_openssl11_symbols_p.h
-            SOURCES += ssl/qsslsocket_openssl11.cpp \
-                       ssl/qsslcontext_openssl11.cpp
-
-            QMAKE_CXXFLAGS += -DOPENSSL_API_COMPAT=0x10100000L
-        } else {
-            HEADERS += ssl/qsslsocket_opensslpre11_symbols_p.h
-            SOURCES += ssl/qsslsocket_opensslpre11.cpp \
-                       ssl/qsslcontext_opensslpre11.cpp
-        }
+        HEADERS += ssl/qsslsocket_opensslpre11_symbols_p.h
+        SOURCES += ssl/qsslsocket_opensslpre11.cpp \
+                   ssl/qsslcontext_opensslpre11.cpp
 
         darwin:SOURCES += ssl/qsslsocket_mac_shared.cpp
 
