diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2020-09-01  Vladimir Shabanov  <dev@vshabanov.com>
+
+	* HsOpenSSL.cabal (Version): Bump version to 0.11.4.19
+
+	* HsOpenSSL.cabal (Version): Discover OpenSSL via pkg-config
+	by Alexander Biehl @alexbiehl (#51)
+
 2020-03-31  Vladimir Shabanov  <dev@vshabanov.com>
 
 	* HsOpenSSL.cabal (Version): Bump version to 0.11.4.18
diff --git a/HsOpenSSL.cabal b/HsOpenSSL.cabal
--- a/HsOpenSSL.cabal
+++ b/HsOpenSSL.cabal
@@ -1,7 +1,6 @@
 Name:         HsOpenSSL
 Synopsis:     Partial OpenSSL binding for Haskell
 Description:
-    .
     HsOpenSSL is an OpenSSL binding for Haskell. It can generate RSA
     and DSA keys, read and write PEM files, generate message digests,
     sign and verify messages, encrypt and decrypt messages. It has
@@ -11,8 +10,7 @@
     systems and stable. You may also be interested in the @tls@ package,
     <http://hackage.haskell.org/package/tls>, which is a pure Haskell
     implementation of SSL.
-    .
-Version:       0.11.4.18
+Version:       0.11.4.19
 License:       PublicDomain
 License-File:  COPYING
 Author:        Adam Langley, Mikhail Vorozhtsov, PHO, Taru Karttunen
@@ -61,6 +59,14 @@
     Default:
         False
 
+Flag use-pkg-config
+    Description:
+        Use pkg-config to find OpenSSL (macOS and linux only).
+    Default:
+        False
+    Manual:
+        True
+
 flag old-locale
   description: If true, use old-locale, otherwise use time 1.5 or newer.
   manual:      False
@@ -113,7 +119,10 @@
         CC-Options:      -D MINGW32 -DNOCRYPT
         CPP-Options:     -DCALLCONV=stdcall
     else
-        Extra-Libraries: ssl crypto
+        if flag(use-pkg-config)
+            pkgconfig-depends: libssl, libcrypto
+        else
+            Extra-Libraries: ssl crypto
         C-Sources:       cbits/mutex-pthread.c
         CC-Options:      -D PTHREAD
         CPP-Options:     -DCALLCONV=ccall
