diff --git a/tools/ndncert-ca-server.cpp b/tools/ndncert-ca-server.cpp
index a331e7e..281e7fe 100644
--- a/tools/ndncert-ca-server.cpp
+++ b/tools/ndncert-ca-server.cpp
@@ -114,12 +114,10 @@
 
   CaModule ca(face, keyChain, configFilePath);
   std::map<Name, Data> cachedCertificates;
-  auto profileMetaData = ca.generateCaProfileMetaData();
-  auto profileData = ca.generateCaProfileData();
+  auto profileData = ca.getCaProfileData();
 
   if (wantRepoOut) {
-    writeDataToRepo(*profileMetaData);
-    writeDataToRepo(*profileData);
+    writeDataToRepo(profileData);
     ca.setStatusUpdateCallback([&](const CaState& request) {
       if (request.m_status == Status::SUCCESS) {
         writeDataToRepo(request.m_cert);
@@ -132,8 +130,7 @@
         cachedCertificates[request.m_cert.getName()] = request.m_cert;
       }
     });
-    cachedCertificates[profileMetaData->getName()] = *profileMetaData;
-    cachedCertificates[profileData->getName()] = *profileData;
+    cachedCertificates[profileData.getName()] = profileData;
     face.setInterestFilter(
         InterestFilter(ca.getCaConf().m_caItem.m_caPrefix),
         [&](const InterestFilter&, const Interest& interest) {
diff --git a/tools/ndncert-client.cpp b/tools/ndncert-client.cpp
index b2f4d4e..1324bba 100644
--- a/tools/ndncert-client.cpp
+++ b/tools/ndncert-client.cpp
@@ -276,9 +276,10 @@
   else {
     //redirects
     auto redirectedCaFullName = redirects[index - names.size()];
-    std::cerr << "You selected redirects with certificate: " << redirectedCaFullName.getPrefix(-1).toUri() << std::endl;
+    auto redirectedCaName = security::v2::extractIdentityFromCertName(redirectedCaFullName.getPrefix(-1));
+    std::cerr << "You selected to be redirected to CA: " << redirectedCaName.toUri() << std::endl;
     face.expressInterest(
-        *Requester::genCaProfileDiscoveryInterest(redirectedCaFullName.getPrefix(-1)),
+        *Requester::genCaProfileDiscoveryInterest(redirectedCaName),
         [&](const Interest&, const Data& data) {
           auto fetchingInterest = Requester::genCaProfileInterestFromDiscoveryResponse(data);
           face.expressInterest(*fetchingInterest,
