diff --git a/src/ca-module.cpp b/src/ca-module.cpp
index 09c0b9c..b5547e0 100644
--- a/src/ca-module.cpp
+++ b/src/ca-module.cpp
@@ -74,11 +74,18 @@
 void
 CaModule::registerPrefix()
 {
-  // register prefixes
   Name prefix = m_config.caProfile.caPrefix;
   prefix.append("CA");
 
-  auto prefixId = m_face.registerPrefix(prefix,
+  ndn::security::pib::Identity identity;
+  try {
+    identity = m_keyChain.getPib().getDefaultIdentity();
+  }
+  catch (const ndn::security::Pib::Error&) {
+    identity = m_keyChain.getPib().getIdentity(m_config.caProfile.caPrefix);
+  }
+
+  auto prefixHandle = m_face.registerPrefix(prefix,
     [&] (const Name& name) {
       // register INFO RDR metadata prefix
       const auto& metaDataComp = ndn::MetadataObject::getKeywordComponent();
@@ -108,8 +115,9 @@
 
       NDN_LOG_TRACE("Prefix " << name << " got registered");
     },
-    [this] (auto&&, const auto& reason) { onRegisterFailed(reason); });
-  m_registeredPrefixHandles.push_back(prefixId);
+    [this] (auto&&, const auto& reason) { onRegisterFailed(reason); },
+    ndn::signingByIdentity(identity));
+  m_registeredPrefixHandles.push_back(prefixHandle);
 }
 
 void
diff --git a/tests/unit-tests/ca-module.t.cpp b/tests/unit-tests/ca-module.t.cpp
index 9fcee0f..3b0b02b 100644
--- a/tests/unit-tests/ca-module.t.cpp
+++ b/tests/unit-tests/ca-module.t.cpp
@@ -40,6 +40,7 @@
 
 BOOST_AUTO_TEST_CASE(Initialization)
 {
+  m_keyChain.createIdentity(Name("/ndn"));
   ndn::DummyClientFace face(m_io, m_keyChain, {true, true});
   CaModule ca(face, m_keyChain, "tests/unit-tests/config-files/config-ca-1", "ca-storage-memory");
   BOOST_CHECK_EQUAL(ca.getCaConf().caProfile.caPrefix, "/ndn");
@@ -498,7 +499,7 @@
   auto key = identity.getDefaultKey();
   auto cert = key.getDefaultCertificate();
 
-  ndn::DummyClientFace face(m_io, {true, true});
+  ndn::DummyClientFace face(m_io, m_keyChain, {true, true});
   CaModule ca(face, m_keyChain, "tests/unit-tests/config-files/config-ca-1", "ca-storage-memory");
   advanceClocks(time::milliseconds(20), 60);
 
@@ -569,7 +570,7 @@
   auto key = identity.getDefaultKey();
   auto cert = key.getDefaultCertificate();
 
-  ndn::DummyClientFace face(m_io, {true, true});
+  ndn::DummyClientFace face(m_io, m_keyChain, {true, true});
   CaModule ca(face, m_keyChain, "tests/unit-tests/config-files/config-ca-1", "ca-storage-memory");
   advanceClocks(time::milliseconds(20), 60);
 
diff --git a/tests/unit-tests/requester.t.cpp b/tests/unit-tests/requester.t.cpp
index a3fa8d5..03cb3de 100644
--- a/tests/unit-tests/requester.t.cpp
+++ b/tests/unit-tests/requester.t.cpp
@@ -77,6 +77,7 @@
   availableNames.emplace_back("/site1");
   availableNames.emplace_back("/site2");
 
+  m_keyChain.createIdentity(Name("/ndn"));
   ndn::DummyClientFace face(m_io, m_keyChain, {true, true});
   ca::CaModule ca(face, m_keyChain, "tests/unit-tests/config-files/config-ca-5", "ca-storage-memory");
 
