diff --git a/README.rst b/README.rst
index 3bf4685b0e15..e9dd4207ae55 100644
--- a/README.rst
+++ b/README.rst
@@ -60,9 +60,12 @@ Meson Build system: [required]
 for the libcamera core: [required]
         libyaml-dev python3-yaml python3-ply python3-jinja2
 
-for IPA module signing: [required]
+for IPA module signing: [recommended]
         Either libgnutls28-dev or libssl-dev, openssl
 
+        Without IPA module signing, all IPA modules will be isolated in a
+        separate process. This adds an unnecessary extra overhead at runtime.
+
 for improved debugging: [optional]
         libdw-dev libunwind-dev
 
diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
index 401fc498cfbc..0efa8fd5df7f 100644
--- a/src/libcamera/meson.build
+++ b/src/libcamera/meson.build
@@ -73,8 +73,14 @@ libcrypto = dependency('gnutls2', required : false)
 if libcrypto.found()
     config_h.set('HAVE_GNUTLS', 1)
 else
-    libcrypto = dependency('libcrypto', required : true)
-    config_h.set('HAVE_CRYPTO', 1)
+    libcrypto = dependency('libcrypto', required : false)
+    if libcrypto.found()
+        config_h.set('HAVE_CRYPTO', 1)
+    endif
+endif
+
+if not libcrypto.found()
+    warning('Neither gnutls nor libcrypto found, all IPA modules will be isolated')
 endif
 
 if liblttng.found()
diff --git a/src/meson.build b/src/meson.build
index 34663a6f134d..f37c44ca9f60 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -14,7 +14,7 @@ summary({
          }, section : 'Paths')
 
 # Module Signing
-openssl = find_program('openssl', required : true)
+openssl = find_program('openssl', required : false)
 if openssl.found()
     ipa_priv_key = custom_target('ipa-priv-key',
                                  output : ['ipa-priv-key.pem'],
@@ -22,6 +22,7 @@ if openssl.found()
     config_h.set('HAVE_IPA_PUBKEY', 1)
     ipa_sign_module = true
 else
+    warning('openssl not found, all IPA modules will be isolated')
     ipa_sign_module = false
 endif
 
