$error) { if ($i == 0) { $error_msg = $error; } else { $error_msg = $error_msg . ", " . $error; } } $_SESSION["error_msg"] = sprintf(_('Field "%s" can not be blank.'), $error_msg); render_page($user, $TAB, "generate_ssl"); unset($_SESSION["error_msg"]); exit(); } // Protect input $v_domain = quoteshellarg($_POST["v_domain"]); $waliases = preg_replace("/\n/", " ", $_POST["v_aliases"]); $waliases = preg_replace("/,/", " ", $waliases); $waliases = preg_replace("/\s+/", " ", $waliases); $waliases = trim($waliases); $aliases = explode(" ", $waliases); $v_aliases = quoteshellarg(str_replace(" ", "\n", $waliases)); $v_email = quoteshellarg($_POST["v_email"]); $v_country = quoteshellarg($_POST["v_country"]); $v_state = quoteshellarg($_POST["v_state"]); $v_locality = quoteshellarg($_POST["v_locality"]); $v_org = quoteshellarg($_POST["v_org"]); exec( HESTIA_CMD . "v-generate-ssl-cert " . $v_domain . " " . $v_email . " " . $v_country . " " . $v_state . " " . $v_locality . " " . $v_org . " IT " . $v_aliases . " json", $output, $return_var, ); // Revert to raw values $v_domain = $_POST["v_domain"]; $v_email = $_POST["v_email"]; $v_country = $_POST["v_country"]; $v_state = $_POST["v_state"]; $v_locality = $_POST["v_locality"]; $v_org = $_POST["v_org"]; // Check return code if ($return_var != 0) { $error = implode("
", $output); if (empty($error)) { $error = sprintf(_("Error code: %s"), $return_var); } $_SESSION["error_msg"] = $error; render_page($user, $TAB, "generate_ssl"); unset($_SESSION["error_msg"]); exit(); } // OK message $_SESSION["ok_msg"] = _("Certificate has been generated successfully."); // Parse output $data = json_decode(implode("", $output), true); unset($output); $v_crt = $data[$v_domain]["CRT"]; $v_key = $data[$v_domain]["KEY"]; $v_csr = $data[$v_domain]["CSR"]; // Back uri $_SESSION["back"] = $_SERVER["REQUEST_URI"]; // Render page render_page($user, $TAB, "list_ssl"); unset($_SESSION["ok_msg"]);