]> granicus.if.org Git - icinga2/commitdiff
Fix pki new-ca not checking for existing ca files
authorMichael Friedrich <michael.friedrich@netways.de>
Thu, 19 Nov 2015 16:06:41 +0000 (17:06 +0100)
committerMichael Friedrich <michael.friedrich@netways.de>
Thu, 19 Nov 2015 16:06:41 +0000 (17:06 +0100)
fixes #10677

lib/cli/pkiutility.cpp

index d40cdc2daa667bf783b673717ccda0f04be95d32..6f0faab8054a8beeba914433857e218d34693997 100644 (file)
@@ -45,17 +45,20 @@ String PkiUtility::GetLocalCaPath(void)
 
 int PkiUtility::NewCa(void)
 {
-       String cadir = GetLocalCaPath();
+       String caDir = GetLocalCaPath();
+       String caCertFile = caDir + "/ca.crt";
+       String caKeyFile = caDir + "/ca.key";
+       String caSerialFile = caDir + "/serial.txt";
 
-       if (Utility::PathExists(cadir)) {
+       if (Utility::PathExists(caCertFile) && Utility::PathExists(caKeyFile)) {
                Log(LogCritical, "cli")
-                   << "CA directory '" << cadir << "' already exists.";
+                   << "CA files '" << caCertFile << "' and '" << caKeyFile << "'already exist.";
                return 1;
        }
 
-       Utility::MkDirP(cadir, 0700);
+       Utility::MkDirP(caDir, 0700);
 
-       MakeX509CSR("Icinga CA", cadir + "/ca.key", String(), cadir + "/ca.crt", cadir + "/serial.txt", true);
+       MakeX509CSR("Icinga CA", caKeyFile, String(), caCertFile, caSerialFile, true);
 
        return 0;
 }