diff --git a/pkgs/development/ocaml-modules/tls/mirage.nix b/pkgs/development/ocaml-modules/tls/mirage.nix
new file mode 100644
index 000000000000..ad81c03c35d0
--- /dev/null
+++ b/pkgs/development/ocaml-modules/tls/mirage.nix
@@ -0,0 +1,29 @@
+{ buildDunePackage, tls
+, x509, lwt, fmt, mirage-flow, mirage-kv, mirage-clock, ptime
+, mirage-crypto, mirage-crypto-pk, hacl_x25519, fiat-p256
+}:
+
+buildDunePackage {
+  pname = "tls-mirage";
+
+  inherit (tls) version src useDune2 minimumOCamlVersion;
+
+  propagatedBuildInputs = [
+    tls
+    x509
+    lwt
+    fmt
+    mirage-flow
+    mirage-kv
+    mirage-clock
+    ptime
+    mirage-crypto
+    mirage-crypto-pk
+    hacl_x25519
+    fiat-p256
+  ];
+
+  meta = tls.meta // {
+    description = "Transport Layer Security purely in OCaml, MirageOS layer";
+  };
+}
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 308240737abf..f91baae0b6e2 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -903,6 +903,8 @@ let
 
     tls = callPackage ../development/ocaml-modules/tls { };
 
+    tls-mirage = callPackage ../development/ocaml-modules/tls/mirage.nix { };
+
     torch = callPackage ../development/ocaml-modules/torch {
       inherit (pkgs.python3Packages) pytorch;
     };