diff --git a/web/edit/server/index.php b/web/edit/server/index.php
index a505e214c..467596f80 100644
--- a/web/edit/server/index.php
+++ b/web/edit/server/index.php
@@ -78,20 +78,43 @@ foreach ($backup_types as $backup_type) {
}
}
+// List ssl web domains
+exec (VESTA_CMD."v-search-ssl-certificates json", $output, $return_var);
+$v_ssl_domains = json_decode(implode('', $output), true);
+//$v_vesta_certificate
+unset($output);
+
// List ssl certificate info
exec (VESTA_CMD."v-list-sys-vesta-ssl json", $output, $return_var);
-$ssl_str = json_decode(implode('', $output), true);
+$v_sys_ssl_str = json_decode(implode('', $output), true);
unset($output);
-$v_ssl_crt = $ssl_str['VESTA']['CRT'];
-$v_ssl_key = $ssl_str['VESTA']['KEY'];
-$v_ssl_ca = $ssl_str['VESTA']['CA'];
-$v_ssl_subject = $ssl_str['VESTA']['SUBJECT'];
-$v_ssl_aliases = $ssl_str['VESTA']['ALIASES'];
-$v_ssl_not_before = $ssl_str['VESTA']['NOT_BEFORE'];
-$v_ssl_not_after = $ssl_str['VESTA']['NOT_AFTER'];
-$v_ssl_signature = $ssl_str['VESTA']['SIGNATURE'];
-$v_ssl_pub_key = $ssl_str['VESTA']['PUB_KEY'];
-$v_ssl_issuer = $ssl_str['VESTA']['ISSUER'];
+$v_sys_ssl_crt = $v_sys_ssl_str['VESTA']['CRT'];
+$v_sys_ssl_key = $v_sys_ssl_str['VESTA']['KEY'];
+$v_sys_ssl_ca = $v_sys_ssl_str['VESTA']['CA'];
+$v_sys_ssl_subject = $v_sys_ssl_str['VESTA']['SUBJECT'];
+$v_sys_ssl_aliases = $v_sys_ssl_str['VESTA']['ALIASES'];
+$v_sys_ssl_not_before = $v_sys_ssl_str['VESTA']['NOT_BEFORE'];
+$v_sys_ssl_not_after = $v_sys_ssl_str['VESTA']['NOT_AFTER'];
+$v_sys_ssl_signature = $v_sys_ssl_str['VESTA']['SIGNATURE'];
+$v_sys_ssl_pub_key = $v_sys_ssl_str['VESTA']['PUB_KEY'];
+$v_sys_ssl_issuer = $v_sys_ssl_str['VESTA']['ISSUER'];
+
+// List mail ssl certificate info
+if (!empty($_SESSION['VESTA_CERTIFICATE'])); {
+ exec (VESTA_CMD."v-list-sys-mail-ssl json", $output, $return_var);
+ $v_mail_ssl_str = json_decode(implode('', $output), true);
+ unset($output);
+ $v_mail_ssl_crt = $v_mail_ssl_str['MAIL']['CRT'];
+ $v_mail_ssl_key = $v_mail_ssl_str['MAIL']['KEY'];
+ $v_mail_ssl_ca = $v_mail_ssl_str['MAIL']['CA'];
+ $v_mail_ssl_subject = $v_mail_ssl_str['MAIL']['SUBJECT'];
+ $v_mail_ssl_aliases = $v_mail_ssl_str['MAIL']['ALIASES'];
+ $v_mail_ssl_not_before = $v_mail_ssl_str['MAIL']['NOT_BEFORE'];
+ $v_mail_ssl_not_after = $v_mail_ssl_str['MAIL']['NOT_AFTER'];
+ $v_mail_ssl_signature = $v_mail_ssl_str['MAIL']['SIGNATURE'];
+ $v_mail_ssl_pub_key = $v_mail_ssl_str['MAIL']['PUB_KEY'];
+ $v_mail_ssl_issuer = $v_mail_ssl_str['MAIL']['ISSUER'];
+}
// Check POST request
if (!empty($_POST['save'])) {
@@ -193,6 +216,47 @@ if (!empty($_POST['save'])) {
}
}
+
+ // Delete Mail Domain SSL certificate
+ if ((!isset($_POST['v_mail_ssl_domain_checkbox'])) && (!empty($_SESSION['MAIL_CERTIFICATE'])) && (empty($_SESSION['error_msg']))) {
+ unset($_SESSION['MAIL_CERTIFICATE']);
+ exec (VESTA_CMD."v-delete-sys-mail-ssl", $output, $return_var);
+ check_return_code($return_var,$output);
+ unset($output);
+ }
+
+ // Updating Mail Domain SSL certificate
+ if ((isset($_POST['v_mail_ssl_domain_checkbox'])) && (isset($_POST['v_mail_ssl_domain'])) && (empty($_SESSION['error_msg']))) {
+ if ((!empty($_POST['v_mail_ssl_domain'])) && ($_POST['v_mail_ssl_domain'] != $_SESSION['MAIL_CERTIFICATE'])) {
+ $v_mail_ssl_str = explode(":", $_POST['v_mail_ssl_domain']);
+ $v_mail_ssl_user = escapeshellarg($v_mail_ssl_str[0]);
+ $v_mail_ssl_domain = escapeshellarg($v_mail_ssl_str[1]);
+ exec (VESTA_CMD."v-add-sys-mail-ssl ".$v_mail_ssl_user." ".$v_mail_ssl_domain, $output, $return_var);
+ check_return_code($return_var,$output);
+ unset($output);
+ unset($v_mail_ssl_str);
+
+ if (empty($_SESSION['error_msg'])) {
+ $_SESSION['MAIL_CERTIFICATE'] = $_POST['v_mail_ssl_domain'];
+
+ // List SSL certificate info
+ exec (VESTA_CMD."v-list-sys-mail-ssl json", $output, $return_var);
+ $v_mail_ssl_str = json_decode(implode('', $output), true);
+ unset($output);
+ $v_mail_ssl_crt = $v_mail_ssl_str['MAIL']['CRT'];
+ $v_mail_ssl_key = $v_mail_ssl_str['MAIL']['KEY'];
+ $v_mail_ssl_ca = $v_mail_ssl_str['MAIL']['CA'];
+ $v_mail_ssl_subject = $v_mail_ssl_str['MAIL']['SUBJECT'];
+ $v_mail_ssl_aliases = $v_mail_ssl_str['MAIL']['ALIASES'];
+ $v_mail_ssl_not_before = $v_mail_ssl_str['MAIL']['NOT_BEFORE'];
+ $v_mail_ssl_not_after = $v_mail_ssl_str['MAIL']['NOT_AFTER'];
+ $v_mail_ssl_signature = $v_mail_ssl_str['MAIL']['SIGNATURE'];
+ $v_mail_ssl_pub_key = $v_mail_ssl_str['MAIL']['PUB_KEY'];
+ $v_mail_ssl_issuer = $v_mail_ssl_str['MAIL']['ISSUER'];
+ }
+ }
+ }
+
// Update webmail url
if (empty($_SESSION['error_msg'])) {
if ($_POST['v_mail_url'] != $_SESSION['MAIL_URL']) {
@@ -352,24 +416,67 @@ if (!empty($_POST['save'])) {
}
}
+
+
+ // Delete WEB Domain SSL certificate
+ if ((!isset($_POST['v_web_ssl_domain_checkbox'])) && (!empty($_SESSION['VESTA_CERTIFICATE'])) && (empty($_SESSION['error_msg']))) {
+ unset($_SESSION['VESTA_CERTIFICATE']);
+ exec (VESTA_CMD."v-delete-sys-vesta-ssl", $output, $return_var);
+ check_return_code($return_var,$output);
+ unset($output);
+ }
+
+ // Updating WEB Domain SSL certificate
+ if ((isset($_POST['v_web_ssl_domain_checkbox'])) && (isset($_POST['v_web_ssl_domain'])) && (empty($_SESSION['error_msg']))) {
+
+ if ((!empty($_POST['v_web_ssl_domain'])) && ($_POST['v_web_ssl_domain'] != $_SESSION['VESTA_CERTIFICATE'])) {
+ $v_web_ssl_str = explode(":", $_POST['v_web_ssl_domain']);
+ $v_web_ssl_user = escapeshellarg($v_web_ssl_str[0]);
+ $v_web_ssl_domain = escapeshellarg($v_web_ssl_str[1]);
+ exec (VESTA_CMD."v-add-sys-vesta-ssl ".$v_web_ssl_user." ".$v_web_ssl_domain, $output, $return_var);
+ check_return_code($return_var,$output);
+ unset($output);
+
+ if (empty($_SESSION['error_msg'])) {
+ $_SESSION['VESTA_CERTIFICATE'] = $_POST['v_web_ssl_domain'];
+
+ // List SSL certificate info
+ exec (VESTA_CMD."v-list-sys-vesta-ssl json", $output, $return_var);
+ $v_sys_ssl_str = json_decode(implode('', $output), true);
+ unset($output);
+ $v_sys_ssl_crt = $v_sys_ssl_str['VESTA']['CRT'];
+ $v_sys_ssl_key = $v_sys_ssl_str['VESTA']['KEY'];
+ $v_sys_ssl_ca = $v_sys_ssl_str['VESTA']['CA'];
+ $v_sys_ssl_subject = $v_sys_ssl_str['VESTA']['SUBJECT'];
+ $v_sys_ssl_aliases = $v_sys_ssl_str['VESTA']['ALIASES'];
+ $v_sys_ssl_not_before = $v_sys_ssl_str['VESTA']['NOT_BEFORE'];
+ $v_sys_ssl_not_after = $v_sys_ssl_str['VESTA']['NOT_AFTER'];
+ $v_sys_ssl_signature = $v_sys_ssl_str['VESTA']['SIGNATURE'];
+ $v_sys_ssl_pub_key = $v_sys_ssl_str['VESTA']['PUB_KEY'];
+ $v_sys_ssl_issuer = $v_sys_ssl_str['VESTA']['ISSUER'];
+ }
+ }
+ }
+
+
// Update SSL certificate
- if ((!empty($_POST['v_ssl_crt'])) && (empty($_SESSION['error_msg']))) {
- if (($v_ssl_crt != str_replace("\r\n", "\n", $_POST['v_ssl_crt'])) || ($v_ssl_key != str_replace("\r\n", "\n", $_POST['v_ssl_key']))) {
+ if ((!empty($_POST['v_sys_ssl_crt'])) && (empty($_POST['v_web_ssl_domain'])) && (empty($_SESSION['error_msg']))) {
+ if (($v_sys_ssl_crt != str_replace("\r\n", "\n", $_POST['v_sys_ssl_crt'])) || ($v_sys_ssl_key != str_replace("\r\n", "\n", $_POST['v_sys_ssl_key']))) {
exec ('mktemp -d', $mktemp_output, $return_var);
$tmpdir = $mktemp_output[0];
// Certificate
- if (!empty($_POST['v_ssl_crt'])) {
+ if (!empty($_POST['v_sys_ssl_crt'])) {
$fp = fopen($tmpdir."/certificate.crt", 'w');
- fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_crt']));
+ fwrite($fp, str_replace("\r\n", "\n", $_POST['v_sys_ssl_crt']));
fwrite($fp, "\n");
fclose($fp);
}
// Key
- if (!empty($_POST['v_ssl_key'])) {
+ if (!empty($_POST['v_sys_ssl_key'])) {
$fp = fopen($tmpdir."/certificate.key", 'w');
- fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_key']));
+ fwrite($fp, str_replace("\r\n", "\n", $_POST['v_sys_ssl_key']));
fwrite($fp, "\n");
fclose($fp);
}
@@ -378,20 +485,22 @@ if (!empty($_POST['save'])) {
check_return_code($return_var,$output);
unset($output);
- // List ssl certificate info
- exec (VESTA_CMD."v-list-sys-vesta-ssl json", $output, $return_var);
- $ssl_str = json_decode(implode('', $output), true);
- unset($output);
- $v_ssl_crt = $ssl_str['VESTA']['CRT'];
- $v_ssl_key = $ssl_str['VESTA']['KEY'];
- $v_ssl_ca = $ssl_str['VESTA']['CA'];
- $v_ssl_subject = $ssl_str['VESTA']['SUBJECT'];
- $v_ssl_aliases = $ssl_str['VESTA']['ALIASES'];
- $v_ssl_not_before = $ssl_str['VESTA']['NOT_BEFORE'];
- $v_ssl_not_after = $ssl_str['VESTA']['NOT_AFTER'];
- $v_ssl_signature = $ssl_str['VESTA']['SIGNATURE'];
- $v_ssl_pub_key = $ssl_str['VESTA']['PUB_KEY'];
- $v_ssl_issuer = $ssl_str['VESTA']['ISSUER'];
+ if (empty($_SESSION['error_msg'])) {
+ // List ssl certificate info
+ exec (VESTA_CMD."v-list-sys-vesta-ssl json", $output, $return_var);
+ $v_sys_ssl_str = json_decode(implode('', $output), true);
+ unset($output);
+ $v_sys_ssl_crt = $v_sys_ssl_str['VESTA']['CRT'];
+ $v_sys_ssl_key = $v_sys_ssl_str['VESTA']['KEY'];
+ $v_sys_ssl_ca = $v_sys_ssl_str['VESTA']['CA'];
+ $v_sys_ssl_subject = $v_sys_ssl_str['VESTA']['SUBJECT'];
+ $v_sys_ssl_aliases = $v_sys_ssl_str['VESTA']['ALIASES'];
+ $v_sys_ssl_not_before = $v_sys_ssl_str['VESTA']['NOT_BEFORE'];
+ $v_sys_ssl_not_after = $v_sys_ssl_str['VESTA']['NOT_AFTER'];
+ $v_sys_ssl_signature = $v_sys_ssl_str['VESTA']['SIGNATURE'];
+ $v_sys_ssl_pub_key = $v_sys_ssl_str['VESTA']['PUB_KEY'];
+ $v_sys_ssl_issuer = $v_sys_ssl_str['VESTA']['ISSUER'];
+ }
}
}
diff --git a/web/templates/admin/edit_server.html b/web/templates/admin/edit_server.html
index 285a16c36..9de862220 100644
--- a/web/templates/admin/edit_server.html
+++ b/web/templates/admin/edit_server.html
@@ -280,13 +280,115 @@
-
+
+
+
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+ |
+
+
+
+
+
+
+ =__('SUBJECT')?>:
+ |
+
+ =$v_sys_ssl_subject?>
+ |
+
+ if($v_sys_ssl_aliases){?>
+
+
+ =__('ALIASES')?>:
+ |
+
+ =$v_sys_ssl_aliases?>
+ |
+
+ } ?>
+
+
+ =__('NOT_BEFORE')?>:
+ |
+
+ =$v_sys_ssl_not_before?>
+ |
+
+
+
+ =__('NOT_AFTER')?>:
+ |
+
+ =$v_sys_ssl_not_after?>
+ |
+
+
+
+ =__('SIGNATURE')?>:
+ |
+
+ =$v_sys_ssl_signature?>
+ |
+
+
+
+ =__('PUB_KEY')?>:
+ |
+
+ =$v_sys_ssl_pub_key?>
+ |
+
+
+
+ =__('ISSUER')?>:
+ |
+
+ =$v_sys_ssl_issuer?>
+ |
+
+
+ |
+
+
+ |
+
-
@@ -503,7 +605,8 @@
">
|
-
+
+
@@ -513,9 +616,10 @@
-
-
- |
+
+
+
+ |
@@ -580,13 +684,54 @@
|
-
+
|
+
+
+
+ |
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+ |
+
+
+ |
+
+
@@ -594,7 +739,7 @@
|
-
+
|
@@ -604,7 +749,7 @@
-
+
|
@@ -615,16 +760,16 @@
=__('SUBJECT')?>:
- =$v_ssl_subject?>
+ =$v_sys_ssl_subject?>
|
- if($v_ssl_aliases){?>
+ if($v_sys_ssl_aliases){?>
=__('ALIASES')?>:
|
- =$v_ssl_aliases?>
+ =$v_sys_ssl_aliases?>
|
} ?>
@@ -633,7 +778,7 @@
=__('NOT_BEFORE')?>:
- =$v_ssl_not_before?>
+ =$v_sys_ssl_not_before?>
|
@@ -641,7 +786,7 @@
=__('NOT_AFTER')?>:
- =$v_ssl_not_after?>
+ =$v_sys_ssl_not_after?>
|
@@ -649,16 +794,15 @@
=__('SIGNATURE')?>:
- =$v_ssl_signature?>
+ =$v_sys_ssl_signature?>
|
-
=__('PUB_KEY')?>:
|
- =$v_ssl_pub_key?>
+ =$v_sys_ssl_pub_key?>
|
@@ -666,7 +810,7 @@
=__('ISSUER')?>:
- =$v_ssl_issuer?>
+ =$v_sys_ssl_issuer?>
|
| | |