diff --git a/horizon.dhall b/horizon.dhall
index dd9a0fcb16bfe6ec6520ae5e1ea6488971acd28d..d3bf765d13ad46f9ac3697ec6334abdf71147498 100644
--- a/horizon.dhall
+++ b/horizon.dhall
@@ -99,6 +99,7 @@ let plutusLibraries =
 
 let otherLibraries =
       [ H.callHackage "HTF" "0.15.0.0"
+      , H.callHackage "HsOpenSSL" "0.11.7.2"
       , H.callHackage "PyF" "0.11.0.0"
       , H.callHackage "Stream" "0.4.7.2"
       , H.callHackage "Unique" "0.4.7.9"
diff --git a/overlay.nix b/overlay.nix
index 5ae47032e2c145f8553465b161125846d4f80dbb..4305a130395d9044353e2debb0275566bb3b5771 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -3,6 +3,8 @@
 final: prev: with pkgs.haskell.lib; {
   HTF = final.callPackage (./pkgs/HTF.nix) { };
 
+  HsOpenSSL = final.callPackage (./pkgs/HsOpenSSL.nix) { };
+
   PyF = final.callPackage (./pkgs/PyF.nix) { };
 
   Stream = final.callPackage (./pkgs/Stream.nix) { };
diff --git a/pkgs/HsOpenSSL.nix b/pkgs/HsOpenSSL.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b3d394cce4772619b666ab2778b88c156e5213f1
--- /dev/null
+++ b/pkgs/HsOpenSSL.nix
@@ -0,0 +1,34 @@
+{ mkDerivation
+, Cabal
+, base
+, bytestring
+, lib
+, network
+, openssl
+, time
+}:
+mkDerivation {
+  pname = "HsOpenSSL";
+  version = "0.11.7.2";
+  sha256 = "8536c0939e52c990b2998a4ac5ff2b5886e1701b41b9934a87df8ec910754d7b";
+  revision = "3";
+  editedCabalFile = "0nsqxym87s48029laqba4nzwpk7nrk35x7wmpjqfnbrj82ddcshd";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  setupHaskellDepends = [ base Cabal ];
+  libraryHaskellDepends = [ base bytestring network time ];
+  librarySystemDepends = [ openssl ];
+  testHaskellDepends = [ base bytestring ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-cryptography/HsOpenSSL";
+  description = "Partial OpenSSL binding for Haskell";
+  license = lib.licenses.publicDomain;
+  broken = false;
+}