add new 'ssl-enabled' flag for domains and subdomains so ssl can be deactivated (by a customer too) even if there are ssl-ip/ports assigned; introduce new honorcipherorder and sessiontickets flags for more control over ssl-related settings on a per domain base (admin only); fixes #767 and fixes #769
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
@@ -105,6 +105,30 @@ return array(
|
|||||||
'hasVhostContainerEnabled'
|
'hasVhostContainerEnabled'
|
||||||
), true)
|
), true)
|
||||||
),
|
),
|
||||||
|
'system_honorcipherorder' => array(
|
||||||
|
'label' => $lng['admin']['domain_honorcipherorder'],
|
||||||
|
'settinggroup' => 'system',
|
||||||
|
'varname' => 'honorcipherorder',
|
||||||
|
'type' => 'bool',
|
||||||
|
'default' => false,
|
||||||
|
'save_method' => 'storeSettingField',
|
||||||
|
'visible' => \Froxlor\Settings::Get('system.use_ssl') && call_user_func(array(
|
||||||
|
'\Froxlor\Settings\FroxlorVhostSettings',
|
||||||
|
'hasVhostContainerEnabled'
|
||||||
|
), true)
|
||||||
|
),
|
||||||
|
'system_sessiontickets' => array(
|
||||||
|
'label' => $lng['admin']['domain_sessiontickets'],
|
||||||
|
'settinggroup' => 'system',
|
||||||
|
'varname' => 'sessiontickets',
|
||||||
|
'type' => 'bool',
|
||||||
|
'default' => true,
|
||||||
|
'save_method' => 'storeSettingField',
|
||||||
|
'visible' => \Froxlor\Settings::Get('system.use_ssl') && call_user_func(array(
|
||||||
|
'\Froxlor\Settings\FroxlorVhostSettings',
|
||||||
|
'hasVhostContainerEnabled'
|
||||||
|
), true)
|
||||||
|
),
|
||||||
/**
|
/**
|
||||||
* FCGID
|
* FCGID
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -271,6 +271,9 @@ CREATE TABLE `panel_domains` (
|
|||||||
`ssl_protocols` text,
|
`ssl_protocols` text,
|
||||||
`ssl_cipher_list` text,
|
`ssl_cipher_list` text,
|
||||||
`tlsv13_cipher_list` text,
|
`tlsv13_cipher_list` text,
|
||||||
|
`ssl_enabled` tinyint(1) DEFAULT '1',
|
||||||
|
`ssl_honorcipherorder` tinyint(1) DEFAULT '0',
|
||||||
|
`ssl_sessiontickets` tinyint(1) DEFAULT '1',
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `customerid` (`customerid`),
|
KEY `customerid` (`customerid`),
|
||||||
KEY `parentdomain` (`parentdomainid`),
|
KEY `parentdomain` (`parentdomainid`),
|
||||||
@@ -652,6 +655,8 @@ opcache.interned_strings_buffer'),
|
|||||||
('system', 'disable_le_selfcheck', '0'),
|
('system', 'disable_le_selfcheck', '0'),
|
||||||
('system', 'ssl_protocols', 'TLSv1,TLSv1.2'),
|
('system', 'ssl_protocols', 'TLSv1,TLSv1.2'),
|
||||||
('system', 'tlsv13_cipher_list', ''),
|
('system', 'tlsv13_cipher_list', ''),
|
||||||
|
('system', 'honorcipherorder', '0'),
|
||||||
|
('system', 'sessiontickets', '1'),
|
||||||
('system', 'logfiles_format', ''),
|
('system', 'logfiles_format', ''),
|
||||||
('system', 'logfiles_type', '1'),
|
('system', 'logfiles_type', '1'),
|
||||||
('system', 'logfiles_piped', '0'),
|
('system', 'logfiles_piped', '0'),
|
||||||
@@ -697,7 +702,7 @@ opcache.interned_strings_buffer'),
|
|||||||
('panel', 'customer_hide_options', ''),
|
('panel', 'customer_hide_options', ''),
|
||||||
('panel', 'is_configured', '0'),
|
('panel', 'is_configured', '0'),
|
||||||
('panel', 'version', '0.10.9'),
|
('panel', 'version', '0.10.9'),
|
||||||
('panel', 'db_version', '201911220');
|
('panel', 'db_version', '201912100');
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `panel_tasks`;
|
DROP TABLE IF EXISTS `panel_tasks`;
|
||||||
|
|||||||
@@ -505,3 +505,16 @@ if (\Froxlor\Froxlor::isFroxlorVersion('0.10.8')) {
|
|||||||
showUpdateStep("Updating from 0.10.8 to 0.10.9", false);
|
showUpdateStep("Updating from 0.10.8 to 0.10.9", false);
|
||||||
\Froxlor\Froxlor::updateToVersion('0.10.9');
|
\Froxlor\Froxlor::updateToVersion('0.10.9');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (\Froxlor\Froxlor::isDatabaseVersion('201911220')) {
|
||||||
|
showUpdateStep("Adding enhanced SSL control over domains");
|
||||||
|
// customer domains
|
||||||
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `ssl_enabled` tinyint(1) DEFAULT '1';");
|
||||||
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `ssl_honorcipherorder` tinyint(1) DEFAULT '0' AFTER `ssl_enabled`;");
|
||||||
|
Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `ssl_sessiontickets` tinyint(1) DEFAULT '1' AFTER `ssl_honorcipherorder`;");
|
||||||
|
// as setting for froxlor vhost
|
||||||
|
Settings::AddNew("system.honorcipherorder", '0');
|
||||||
|
Settings::AddNew("system.sessiontickets", '1');
|
||||||
|
lastStepStatus(0);
|
||||||
|
\Froxlor\Froxlor::updateToDbVersion('201912100');
|
||||||
|
}
|
||||||
|
|||||||
@@ -168,14 +168,15 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
|
|||||||
* get ips connected to given domain as array
|
* get ips connected to given domain as array
|
||||||
*
|
*
|
||||||
* @param number $domain_id
|
* @param number $domain_id
|
||||||
|
* @param bool $ssl_only
|
||||||
|
* optional, return only ssl enabled ip's, default false
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
private function getIpsForDomain($domain_id = 0)
|
private function getIpsForDomain($domain_id = 0, $ssl_only = false)
|
||||||
{
|
{
|
||||||
$resultips_stmt = Database::prepare("
|
$resultips_stmt = Database::prepare("
|
||||||
SELECT `ips`.* FROM `" . TABLE_DOMAINTOIP . "` AS `dti`, `" . TABLE_PANEL_IPSANDPORTS . "` AS `ips`
|
SELECT `ips`.* FROM `" . TABLE_DOMAINTOIP . "` AS `dti`, `" . TABLE_PANEL_IPSANDPORTS . "` AS `ips`
|
||||||
WHERE `dti`.`id_ipandports` = `ips`.`id` AND `dti`.`id_domain` = :domainid
|
WHERE `dti`.`id_ipandports` = `ips`.`id` AND `dti`.`id_domain` = :domainid " . ($ssl_only ? " AND `ips`.`ssl` = '1'" : ""));
|
||||||
");
|
|
||||||
|
|
||||||
Database::pexecute($resultips_stmt, array(
|
Database::pexecute($resultips_stmt, array(
|
||||||
'domainid' => $domain_id
|
'domainid' => $domain_id
|
||||||
@@ -260,6 +261,8 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
|
|||||||
* optional, list of ssl-enabled ip/port id's to assign to this domain, default empty
|
* optional, list of ssl-enabled ip/port id's to assign to this domain, default empty
|
||||||
* @param bool $dont_use_default_ssl_ipandport_if_empty
|
* @param bool $dont_use_default_ssl_ipandport_if_empty
|
||||||
* optional, do NOT set the systems default ssl ip addresses if none are given via $ssl_ipandport parameter
|
* optional, do NOT set the systems default ssl ip addresses if none are given via $ssl_ipandport parameter
|
||||||
|
* @param bool $sslenabled
|
||||||
|
* optional, whether or not SSL is enabled for this domain, regardless of the assigned ssl-ips, default 1 (true)
|
||||||
* @param bool $http2
|
* @param bool $http2
|
||||||
* optional, whether to enable http/2 for this domain (requires to be enabled in the settings), default 0 (false)
|
* optional, whether to enable http/2 for this domain (requires to be enabled in the settings), default 0 (false)
|
||||||
* @param int $hsts_maxage
|
* @param int $hsts_maxage
|
||||||
@@ -270,6 +273,10 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
|
|||||||
* optional whether or not to preload HSTS header value
|
* optional whether or not to preload HSTS header value
|
||||||
* @param bool $ocsp_stapling
|
* @param bool $ocsp_stapling
|
||||||
* optional whether to enable ocsp-stapling for this domain. default 0 (false), requires SSL
|
* optional whether to enable ocsp-stapling for this domain. default 0 (false), requires SSL
|
||||||
|
* @param bool $honorcipherorder
|
||||||
|
* optional whether to honor the (server) cipher order for this domain. default 0 (false), requires SSL
|
||||||
|
* @param bool $sessiontickets
|
||||||
|
* optional whether to enable or disable TLS sessiontickets (RFC 5077) for this domain. default 1 (true), requires SSL
|
||||||
* @param bool $override_tls
|
* @param bool $override_tls
|
||||||
* optional whether or not to override system-tls settings like protocol, ssl-ciphers and if applicable tls-1.3 ciphers, requires change_serversettings flag for the admin, default false
|
* optional whether or not to override system-tls settings like protocol, ssl-ciphers and if applicable tls-1.3 ciphers, requires change_serversettings flag for the admin, default false
|
||||||
* @param array $ssl_protocols
|
* @param array $ssl_protocols
|
||||||
@@ -324,11 +331,14 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
|
|||||||
$letsencrypt = $this->getBoolParam('letsencrypt', true, 0);
|
$letsencrypt = $this->getBoolParam('letsencrypt', true, 0);
|
||||||
$dont_use_default_ssl_ipandport_if_empty = $this->getBoolParam('dont_use_default_ssl_ipandport_if_empty', true, 0);
|
$dont_use_default_ssl_ipandport_if_empty = $this->getBoolParam('dont_use_default_ssl_ipandport_if_empty', true, 0);
|
||||||
$p_ssl_ipandports = $this->getParam('ssl_ipandport', true, $dont_use_default_ssl_ipandport_if_empty ? array() : explode(',', Settings::Get('system.defaultsslip')));
|
$p_ssl_ipandports = $this->getParam('ssl_ipandport', true, $dont_use_default_ssl_ipandport_if_empty ? array() : explode(',', Settings::Get('system.defaultsslip')));
|
||||||
|
$sslenabled = $this->getBoolParam('sslenabled', true, 1);
|
||||||
$http2 = $this->getBoolParam('http2', true, 0);
|
$http2 = $this->getBoolParam('http2', true, 0);
|
||||||
$hsts_maxage = $this->getParam('hsts_maxage', true, 0);
|
$hsts_maxage = $this->getParam('hsts_maxage', true, 0);
|
||||||
$hsts_sub = $this->getBoolParam('hsts_sub', true, 0);
|
$hsts_sub = $this->getBoolParam('hsts_sub', true, 0);
|
||||||
$hsts_preload = $this->getBoolParam('hsts_preload', true, 0);
|
$hsts_preload = $this->getBoolParam('hsts_preload', true, 0);
|
||||||
$ocsp_stapling = $this->getBoolParam('ocsp_stapling', true, 0);
|
$ocsp_stapling = $this->getBoolParam('ocsp_stapling', true, 0);
|
||||||
|
$honorcipherorder = $this->getBoolParam('honorcipherorder', true, 0);
|
||||||
|
$sessiontickets = $this->getBoolParam('sessiontickets', true, 1);
|
||||||
|
|
||||||
$override_tls = $this->getBoolParam('override_tls', true, 0);
|
$override_tls = $this->getBoolParam('override_tls', true, 0);
|
||||||
$p_ssl_protocols = array();
|
$p_ssl_protocols = array();
|
||||||
@@ -712,7 +722,10 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
|
|||||||
'override_tls' => $override_tls,
|
'override_tls' => $override_tls,
|
||||||
'ssl_protocols' => implode(",", $ssl_protocols),
|
'ssl_protocols' => implode(",", $ssl_protocols),
|
||||||
'ssl_cipher_list' => $ssl_cipher_list,
|
'ssl_cipher_list' => $ssl_cipher_list,
|
||||||
'tlsv13_cipher_list' => $tlsv13_cipher_list
|
'tlsv13_cipher_list' => $tlsv13_cipher_list,
|
||||||
|
'sslenabled' => $sslenabled,
|
||||||
|
'honorcipherorder' => $honorcipherorder,
|
||||||
|
'sessiontickets' => $sessiontickets
|
||||||
);
|
);
|
||||||
|
|
||||||
$ins_stmt = Database::prepare("
|
$ins_stmt = Database::prepare("
|
||||||
@@ -760,7 +773,10 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
|
|||||||
`override_tls` = :override_tls,
|
`override_tls` = :override_tls,
|
||||||
`ssl_protocols` = :ssl_protocols,
|
`ssl_protocols` = :ssl_protocols,
|
||||||
`ssl_cipher_list` = :ssl_cipher_list,
|
`ssl_cipher_list` = :ssl_cipher_list,
|
||||||
`tlsv13_cipher_list` = :tlsv13_cipher_list
|
`tlsv13_cipher_list` = :tlsv13_cipher_list,
|
||||||
|
`ssl_enabled` = :sslenabled,
|
||||||
|
`ssl_honorcipherorder` = :honorcipherorder,
|
||||||
|
`ssl_sessiontickets`= :sessiontickets
|
||||||
");
|
");
|
||||||
Database::pexecute($ins_stmt, $ins_data, true, true);
|
Database::pexecute($ins_stmt, $ins_data, true, true);
|
||||||
$domainid = Database::lastInsertId();
|
$domainid = Database::lastInsertId();
|
||||||
@@ -894,6 +910,8 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
|
|||||||
* optional, list of ssl-enabled ip/port id's to assign to this domain, if left empty, the current set value is being used, to remove all ssl ips use $remove_ssl_ipandport
|
* optional, list of ssl-enabled ip/port id's to assign to this domain, if left empty, the current set value is being used, to remove all ssl ips use $remove_ssl_ipandport
|
||||||
* @param bool $remove_ssl_ipandport
|
* @param bool $remove_ssl_ipandport
|
||||||
* optional, if set to true and no $ssl_ipandport value is given, the ip's get removed, otherwise, the currently set value is used, default false
|
* optional, if set to true and no $ssl_ipandport value is given, the ip's get removed, otherwise, the currently set value is used, default false
|
||||||
|
* @param bool $sslenabled
|
||||||
|
* optional, whether or not SSL is enabled for this domain, regardless of the assigned ssl-ips, default 1 (true)
|
||||||
* @param bool $http2
|
* @param bool $http2
|
||||||
* optional, whether to enable http/2 for this domain (requires to be enabled in the settings), default 0 (false)
|
* optional, whether to enable http/2 for this domain (requires to be enabled in the settings), default 0 (false)
|
||||||
* @param int $hsts_maxage
|
* @param int $hsts_maxage
|
||||||
@@ -904,6 +922,10 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
|
|||||||
* optional whether or not to preload HSTS header value
|
* optional whether or not to preload HSTS header value
|
||||||
* @param bool $ocsp_stapling
|
* @param bool $ocsp_stapling
|
||||||
* optional whether to enable ocsp-stapling for this domain. default 0 (false), requires SSL
|
* optional whether to enable ocsp-stapling for this domain. default 0 (false), requires SSL
|
||||||
|
* @param bool $honorcipherorder
|
||||||
|
* optional whether to honor the (server) cipher order for this domain. default 0 (false), requires SSL
|
||||||
|
* @param bool $sessiontickets
|
||||||
|
* optional whether to enable or disable TLS sessiontickets (RFC 5077) for this domain. default 1 (true), requires SSL
|
||||||
*
|
*
|
||||||
* @access admin
|
* @access admin
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
@@ -964,11 +986,14 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
|
|||||||
$p_ssl_ipandports = $this->getParam('ssl_ipandport', true, $remove_ssl_ipandport ? array(
|
$p_ssl_ipandports = $this->getParam('ssl_ipandport', true, $remove_ssl_ipandport ? array(
|
||||||
- 1
|
- 1
|
||||||
) : null);
|
) : null);
|
||||||
|
$sslenabled = $this->getBoolParam('sslenabled', true, $result['ssl_enabled']);
|
||||||
$http2 = $this->getBoolParam('http2', true, $result['http2']);
|
$http2 = $this->getBoolParam('http2', true, $result['http2']);
|
||||||
$hsts_maxage = $this->getParam('hsts_maxage', true, $result['hsts']);
|
$hsts_maxage = $this->getParam('hsts_maxage', true, $result['hsts']);
|
||||||
$hsts_sub = $this->getBoolParam('hsts_sub', true, $result['hsts_sub']);
|
$hsts_sub = $this->getBoolParam('hsts_sub', true, $result['hsts_sub']);
|
||||||
$hsts_preload = $this->getBoolParam('hsts_preload', true, $result['hsts_preload']);
|
$hsts_preload = $this->getBoolParam('hsts_preload', true, $result['hsts_preload']);
|
||||||
$ocsp_stapling = $this->getBoolParam('ocsp_stapling', true, $result['ocsp_stapling']);
|
$ocsp_stapling = $this->getBoolParam('ocsp_stapling', true, $result['ocsp_stapling']);
|
||||||
|
$honorcipherorder = $this->getBoolParam('honorcipherorder', true, $result['ssl_honorcipherorder']);
|
||||||
|
$sessiontickets = $this->getBoolParam('sessiontickets', true, $result['ssl_sessiontickets']);
|
||||||
|
|
||||||
$override_tls = $this->getBoolParam('override_tls', true, $result['override_tls']);
|
$override_tls = $this->getBoolParam('override_tls', true, $result['override_tls']);
|
||||||
|
|
||||||
@@ -1546,6 +1571,9 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
|
|||||||
$update_data['ssl_protocols'] = implode(",", $ssl_protocols);
|
$update_data['ssl_protocols'] = implode(",", $ssl_protocols);
|
||||||
$update_data['ssl_cipher_list'] = $ssl_cipher_list;
|
$update_data['ssl_cipher_list'] = $ssl_cipher_list;
|
||||||
$update_data['tlsv13_cipher_list'] = $tlsv13_cipher_list;
|
$update_data['tlsv13_cipher_list'] = $tlsv13_cipher_list;
|
||||||
|
$update_data['sslenabled'] = $sslenabled;
|
||||||
|
$update_data['honorcipherorder'] = $honorcipherorder;
|
||||||
|
$update_data['sessiontickets'] = $sessiontickets;
|
||||||
$update_data['id'] = $id;
|
$update_data['id'] = $id;
|
||||||
|
|
||||||
$update_stmt = Database::prepare("
|
$update_stmt = Database::prepare("
|
||||||
@@ -1588,7 +1616,10 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
|
|||||||
`override_tls` = :override_tls,
|
`override_tls` = :override_tls,
|
||||||
`ssl_protocols` = :ssl_protocols,
|
`ssl_protocols` = :ssl_protocols,
|
||||||
`ssl_cipher_list` = :ssl_cipher_list,
|
`ssl_cipher_list` = :ssl_cipher_list,
|
||||||
`tlsv13_cipher_list` = :tlsv13_cipher_list
|
`tlsv13_cipher_list` = :tlsv13_cipher_list,
|
||||||
|
`ssl_enabled` = :sslenabled,
|
||||||
|
`ssl_honorcipherorder` = :honorcipherorder,
|
||||||
|
`ssl_sessiontickets` = :sessiontickets
|
||||||
WHERE `id` = :id
|
WHERE `id` = :id
|
||||||
");
|
");
|
||||||
Database::pexecute($update_stmt, $update_data, true, true);
|
Database::pexecute($update_stmt, $update_data, true, true);
|
||||||
@@ -1603,6 +1634,8 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
|
|||||||
$_update_data['ssl_protocols'] = implode(",", $ssl_protocols);
|
$_update_data['ssl_protocols'] = implode(",", $ssl_protocols);
|
||||||
$_update_data['ssl_cipher_list'] = $ssl_cipher_list;
|
$_update_data['ssl_cipher_list'] = $ssl_cipher_list;
|
||||||
$_update_data['tlsv13_cipher_list'] = $tlsv13_cipher_list;
|
$_update_data['tlsv13_cipher_list'] = $tlsv13_cipher_list;
|
||||||
|
$_update_data['honorcipherorder'] = $honorcipherorder;
|
||||||
|
$_update_data['sessiontickets'] = $sessiontickets;
|
||||||
$_update_data['parentdomainid'] = $id;
|
$_update_data['parentdomainid'] = $id;
|
||||||
|
|
||||||
// if php config is to be set for all subdomains, check here
|
// if php config is to be set for all subdomains, check here
|
||||||
@@ -1630,7 +1663,9 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn
|
|||||||
`override_tls` = :override_tls,
|
`override_tls` = :override_tls,
|
||||||
`ssl_protocols` = :ssl_protocols,
|
`ssl_protocols` = :ssl_protocols,
|
||||||
`ssl_cipher_list` = :ssl_cipher_list,
|
`ssl_cipher_list` = :ssl_cipher_list,
|
||||||
`tlsv13_cipher_list` = :tlsv13_cipher_list
|
`tlsv13_cipher_list` = :tlsv13_cipher_list,
|
||||||
|
`ssl_honorcipherorder` = :honorcipherorder,
|
||||||
|
`ssl_sessiontickets` = :sessiontickets
|
||||||
" . $update_phpconfig . $upd_specialsettings . $updatechildren . $update_sslredirect . "
|
" . $update_phpconfig . $upd_specialsettings . $updatechildren . $update_sslredirect . "
|
||||||
WHERE `parentdomainid` = :parentdomainid
|
WHERE `parentdomainid` = :parentdomainid
|
||||||
");
|
");
|
||||||
|
|||||||
@@ -41,6 +41,8 @@ class SubDomains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc
|
|||||||
* optional, php-settings-id, if empty the $domain value is used
|
* optional, php-settings-id, if empty the $domain value is used
|
||||||
* @param int $redirectcode
|
* @param int $redirectcode
|
||||||
* optional, redirect-code-id from TABLE_PANEL_REDIRECTCODES
|
* optional, redirect-code-id from TABLE_PANEL_REDIRECTCODES
|
||||||
|
* @param bool $sslenabled
|
||||||
|
* optional, whether or not SSL is enabled for this domain, regardless of the assigned ssl-ips, default 1 (true)
|
||||||
* @param bool $ssl_redirect
|
* @param bool $ssl_redirect
|
||||||
* optional, whether to generate a https-redirect or not, default false; requires SSL to be enabled
|
* optional, whether to generate a https-redirect or not, default false; requires SSL to be enabled
|
||||||
* @param bool $letsencrypt
|
* @param bool $letsencrypt
|
||||||
@@ -76,6 +78,7 @@ class SubDomains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc
|
|||||||
$redirectcode = $this->getParam('redirectcode', true, Settings::Get('customredirect.default'));
|
$redirectcode = $this->getParam('redirectcode', true, Settings::Get('customredirect.default'));
|
||||||
$isemaildomain = $this->getParam('isemaildomain', true, 0);
|
$isemaildomain = $this->getParam('isemaildomain', true, 0);
|
||||||
if (Settings::Get('system.use_ssl')) {
|
if (Settings::Get('system.use_ssl')) {
|
||||||
|
$sslenabled = $this->getBoolParam('sslenabled', true, 1);
|
||||||
$ssl_redirect = $this->getBoolParam('ssl_redirect', true, 0);
|
$ssl_redirect = $this->getBoolParam('ssl_redirect', true, 0);
|
||||||
$letsencrypt = $this->getBoolParam('letsencrypt', true, 0);
|
$letsencrypt = $this->getBoolParam('letsencrypt', true, 0);
|
||||||
$http2 = $this->getBoolParam('http2', true, 0);
|
$http2 = $this->getBoolParam('http2', true, 0);
|
||||||
@@ -83,6 +86,7 @@ class SubDomains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc
|
|||||||
$hsts_sub = $this->getBoolParam('hsts_sub', true, 0);
|
$hsts_sub = $this->getBoolParam('hsts_sub', true, 0);
|
||||||
$hsts_preload = $this->getBoolParam('hsts_preload', true, 0);
|
$hsts_preload = $this->getBoolParam('hsts_preload', true, 0);
|
||||||
} else {
|
} else {
|
||||||
|
$sslenabled = 0;
|
||||||
$ssl_redirect = 0;
|
$ssl_redirect = 0;
|
||||||
$letsencrypt = 0;
|
$letsencrypt = 0;
|
||||||
$http2 = 0;
|
$http2 = 0;
|
||||||
@@ -275,7 +279,8 @@ class SubDomains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc
|
|||||||
`override_tls` = :override_tls,
|
`override_tls` = :override_tls,
|
||||||
`ssl_protocols` = :ssl_protocols,
|
`ssl_protocols` = :ssl_protocols,
|
||||||
`ssl_cipher_list` = :ssl_cipher_list,
|
`ssl_cipher_list` = :ssl_cipher_list,
|
||||||
`tlsv13_cipher_list` = :tlsv13_cipher_list
|
`tlsv13_cipher_list` = :tlsv13_cipher_list,
|
||||||
|
`ssl_enabled` = :sslenabled
|
||||||
");
|
");
|
||||||
$params = array(
|
$params = array(
|
||||||
"customerid" => $customer['customerid'],
|
"customerid" => $customer['customerid'],
|
||||||
@@ -305,7 +310,8 @@ class SubDomains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc
|
|||||||
"override_tls" => $domain_check['override_tls'],
|
"override_tls" => $domain_check['override_tls'],
|
||||||
"ssl_protocols" => $domain_check['ssl_protocols'],
|
"ssl_protocols" => $domain_check['ssl_protocols'],
|
||||||
"ssl_cipher_list" => $domain_check['ssl_cipher_list'],
|
"ssl_cipher_list" => $domain_check['ssl_cipher_list'],
|
||||||
"tlsv13_cipher_list" => $domain_check['tlsv13_cipher_list']
|
"tlsv13_cipher_list" => $domain_check['tlsv13_cipher_list'],
|
||||||
|
"sslenabled" => $sslenabled
|
||||||
);
|
);
|
||||||
Database::pexecute($stmt, $params, true, true);
|
Database::pexecute($stmt, $params, true, true);
|
||||||
$subdomain_id = Database::lastInsertId();
|
$subdomain_id = Database::lastInsertId();
|
||||||
@@ -446,6 +452,8 @@ class SubDomains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc
|
|||||||
* optional, php-settings-id, if empty the $domain value is used
|
* optional, php-settings-id, if empty the $domain value is used
|
||||||
* @param int $redirectcode
|
* @param int $redirectcode
|
||||||
* optional, redirect-code-id from TABLE_PANEL_REDIRECTCODES
|
* optional, redirect-code-id from TABLE_PANEL_REDIRECTCODES
|
||||||
|
* @param bool $sslenabled
|
||||||
|
* optional, whether or not SSL is enabled for this domain, regardless of the assigned ssl-ips, default 1 (true)
|
||||||
* @param bool $ssl_redirect
|
* @param bool $ssl_redirect
|
||||||
* optional, whether to generate a https-redirect or not, default false; requires SSL to be enabled
|
* optional, whether to generate a https-redirect or not, default false; requires SSL to be enabled
|
||||||
* @param bool $letsencrypt
|
* @param bool $letsencrypt
|
||||||
@@ -493,6 +501,7 @@ class SubDomains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc
|
|||||||
$phpsettingid = $this->getParam('phpsettingid', true, $result['phpsettingid']);
|
$phpsettingid = $this->getParam('phpsettingid', true, $result['phpsettingid']);
|
||||||
$redirectcode = $this->getParam('redirectcode', true, \Froxlor\Domain\Domain::getDomainRedirectId($id));
|
$redirectcode = $this->getParam('redirectcode', true, \Froxlor\Domain\Domain::getDomainRedirectId($id));
|
||||||
if (Settings::Get('system.use_ssl')) {
|
if (Settings::Get('system.use_ssl')) {
|
||||||
|
$sslenabled = $this->getBoolParam('sslenabled', true, $result['ssl_enabled']);
|
||||||
$ssl_redirect = $this->getBoolParam('ssl_redirect', true, $result['ssl_redirect']);
|
$ssl_redirect = $this->getBoolParam('ssl_redirect', true, $result['ssl_redirect']);
|
||||||
$letsencrypt = $this->getBoolParam('letsencrypt', true, $result['letsencrypt']);
|
$letsencrypt = $this->getBoolParam('letsencrypt', true, $result['letsencrypt']);
|
||||||
$http2 = $this->getBoolParam('http2', true, $result['http2']);
|
$http2 = $this->getBoolParam('http2', true, $result['http2']);
|
||||||
@@ -500,6 +509,7 @@ class SubDomains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc
|
|||||||
$hsts_sub = $this->getBoolParam('hsts_sub', true, $result['hsts_sub']);
|
$hsts_sub = $this->getBoolParam('hsts_sub', true, $result['hsts_sub']);
|
||||||
$hsts_preload = $this->getBoolParam('hsts_preload', true, $result['hsts_preload']);
|
$hsts_preload = $this->getBoolParam('hsts_preload', true, $result['hsts_preload']);
|
||||||
} else {
|
} else {
|
||||||
|
$sslenabled = 0;
|
||||||
$ssl_redirect = 0;
|
$ssl_redirect = 0;
|
||||||
$letsencrypt = 0;
|
$letsencrypt = 0;
|
||||||
$http2 = 0;
|
$http2 = 0;
|
||||||
@@ -610,14 +620,15 @@ class SubDomains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc
|
|||||||
if ($path != $result['documentroot'] || $isemaildomain != $result['isemaildomain'] || $wwwserveralias != $result['wwwserveralias'] || $iswildcarddomain != $result['iswildcarddomain'] || $aliasdomain != $result['aliasdomain'] || $openbasedir_path != $result['openbasedir_path'] || $ssl_redirect != $result['ssl_redirect'] || $letsencrypt != $result['letsencrypt'] || $hsts_maxage != $result['hsts'] || $hsts_sub != $result['hsts_sub'] || $hsts_preload != $result['hsts_preload'] || $phpsettingid != $result['phpsettingid']) {
|
if ($path != $result['documentroot'] || $isemaildomain != $result['isemaildomain'] || $wwwserveralias != $result['wwwserveralias'] || $iswildcarddomain != $result['iswildcarddomain'] || $aliasdomain != $result['aliasdomain'] || $openbasedir_path != $result['openbasedir_path'] || $ssl_redirect != $result['ssl_redirect'] || $letsencrypt != $result['letsencrypt'] || $hsts_maxage != $result['hsts'] || $hsts_sub != $result['hsts_sub'] || $hsts_preload != $result['hsts_preload'] || $phpsettingid != $result['phpsettingid']) {
|
||||||
$stmt = Database::prepare("
|
$stmt = Database::prepare("
|
||||||
UPDATE `" . TABLE_PANEL_DOMAINS . "` SET
|
UPDATE `" . TABLE_PANEL_DOMAINS . "` SET
|
||||||
`documentroot`= :documentroot,
|
`documentroot` = :documentroot,
|
||||||
`isemaildomain`= :isemaildomain,
|
`isemaildomain` = :isemaildomain,
|
||||||
`wwwserveralias`= :wwwserveralias,
|
`wwwserveralias` = :wwwserveralias,
|
||||||
`iswildcarddomain`= :iswildcarddomain,
|
`iswildcarddomain` = :iswildcarddomain,
|
||||||
`aliasdomain`= :aliasdomain,
|
`aliasdomain` = :aliasdomain,
|
||||||
`openbasedir_path`= :openbasedir_path,
|
`openbasedir_path` = :openbasedir_path,
|
||||||
`ssl_redirect`= :ssl_redirect,
|
`ssl_enabled` = :sslenabled,
|
||||||
`letsencrypt`= :letsencrypt,
|
`ssl_redirect` = :ssl_redirect,
|
||||||
|
`letsencrypt` = :letsencrypt,
|
||||||
`http2` = :http2,
|
`http2` = :http2,
|
||||||
`hsts` = :hsts,
|
`hsts` = :hsts,
|
||||||
`hsts_sub` = :hsts_sub,
|
`hsts_sub` = :hsts_sub,
|
||||||
@@ -632,6 +643,7 @@ class SubDomains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc
|
|||||||
"iswildcarddomain" => $iswildcarddomain,
|
"iswildcarddomain" => $iswildcarddomain,
|
||||||
"aliasdomain" => ($aliasdomain != 0 && $alias_check == 0) ? $aliasdomain : null,
|
"aliasdomain" => ($aliasdomain != 0 && $alias_check == 0) ? $aliasdomain : null,
|
||||||
"openbasedir_path" => $openbasedir_path,
|
"openbasedir_path" => $openbasedir_path,
|
||||||
|
"sslenabled" => $sslenabled,
|
||||||
"ssl_redirect" => $ssl_redirect,
|
"ssl_redirect" => $ssl_redirect,
|
||||||
"letsencrypt" => $letsencrypt,
|
"letsencrypt" => $letsencrypt,
|
||||||
"http2" => $http2,
|
"http2" => $http2,
|
||||||
|
|||||||
@@ -442,7 +442,9 @@ class Apache extends HttpConfigBase
|
|||||||
'loginname' => 'froxlor.panel',
|
'loginname' => 'froxlor.panel',
|
||||||
'documentroot' => $mypath,
|
'documentroot' => $mypath,
|
||||||
'customerroot' => $mypath,
|
'customerroot' => $mypath,
|
||||||
'parentdomainid' => 0
|
'parentdomainid' => 0,
|
||||||
|
'ssl_honorcipherorder' => Settings::Get('system.honorcipherorder'),
|
||||||
|
'ssl_sessiontickets' => Settings::Get('system.sessiontickets')
|
||||||
);
|
);
|
||||||
|
|
||||||
// override corresponding array values
|
// override corresponding array values
|
||||||
@@ -478,9 +480,10 @@ class Apache extends HttpConfigBase
|
|||||||
$this->virtualhosts_data[$vhosts_filename] .= ' SSLOpenSSLConfCmd DHParameters "' . $dhparams . '"' . "\n";
|
$this->virtualhosts_data[$vhosts_filename] .= ' SSLOpenSSLConfCmd DHParameters "' . $dhparams . '"' . "\n";
|
||||||
}
|
}
|
||||||
$this->virtualhosts_data[$vhosts_filename] .= ' SSLCompression Off' . "\n";
|
$this->virtualhosts_data[$vhosts_filename] .= ' SSLCompression Off' . "\n";
|
||||||
|
$this->virtualhosts_data[$vhosts_filename] .= ' SSLSessionTickets ' . ($domain['ssl_sessiontickets'] == '1' ? 'on' : 'off') . "\n";
|
||||||
}
|
}
|
||||||
// this makes it more secure, thx to Marcel (08/2013)
|
|
||||||
$this->virtualhosts_data[$vhosts_filename] .= ' SSLHonorCipherOrder On' . "\n";
|
$this->virtualhosts_data[$vhosts_filename] .= ' SSLHonorCipherOrder ' . ($domain['ssl_honorcipherorder'] == '1' ? 'on' : 'off') . "\n";
|
||||||
$this->virtualhosts_data[$vhosts_filename] .= ' SSLCipherSuite ' . Settings::Get('system.ssl_cipher_list') . "\n";
|
$this->virtualhosts_data[$vhosts_filename] .= ' SSLCipherSuite ' . Settings::Get('system.ssl_cipher_list') . "\n";
|
||||||
$protocols = array_map('trim', explode(",", Settings::Get('system.ssl_protocols')));
|
$protocols = array_map('trim', explode(",", Settings::Get('system.ssl_protocols')));
|
||||||
if (in_array("TLSv1.3", $protocols) && ! empty(Settings::Get('system.tlsv13_cipher_list')) && Settings::Get('system.apache24') == 1) {
|
if (in_array("TLSv1.3", $protocols) && ! empty(Settings::Get('system.tlsv13_cipher_list')) && Settings::Get('system.apache24') == 1) {
|
||||||
@@ -986,9 +989,9 @@ class Apache extends HttpConfigBase
|
|||||||
$vhost_content .= ' SSLOpenSSLConfCmd DHParameters "' . $dhparams . '"' . "\n";
|
$vhost_content .= ' SSLOpenSSLConfCmd DHParameters "' . $dhparams . '"' . "\n";
|
||||||
}
|
}
|
||||||
$vhost_content .= ' SSLCompression Off' . "\n";
|
$vhost_content .= ' SSLCompression Off' . "\n";
|
||||||
|
$vhost_content .= ' SSLSessionTickets ' . ($domain['ssl_sessiontickets'] == '1' ? 'on' : 'off') . "\n";
|
||||||
}
|
}
|
||||||
// this makes it more secure, thx to Marcel (08/2013)
|
$vhost_content .= ' SSLHonorCipherOrder ' . ($domain['ssl_honorcipherorder'] == '1' ? 'on' : 'off') . "\n";
|
||||||
$vhost_content .= ' SSLHonorCipherOrder On' . "\n";
|
|
||||||
$vhost_content .= ' SSLCipherSuite ' . $ssl_cipher_list . "\n";
|
$vhost_content .= ' SSLCipherSuite ' . $ssl_cipher_list . "\n";
|
||||||
$protocols = array_map('trim', explode(",", $ssl_protocols));
|
$protocols = array_map('trim', explode(",", $ssl_protocols));
|
||||||
if (in_array("TLSv1.3", $protocols) && ! empty($tlsv13_cipher_list) && Settings::Get('system.apache24') == 1) {
|
if (in_array("TLSv1.3", $protocols) && ! empty($tlsv13_cipher_list) && Settings::Get('system.apache24') == 1) {
|
||||||
@@ -1114,7 +1117,7 @@ class Apache extends HttpConfigBase
|
|||||||
// Create vhost without ssl
|
// Create vhost without ssl
|
||||||
$this->virtualhosts_data[$vhosts_filename] .= $this->getVhostContent($domain, false);
|
$this->virtualhosts_data[$vhosts_filename] .= $this->getVhostContent($domain, false);
|
||||||
|
|
||||||
if ($domain['ssl'] == '1' || $domain['ssl_redirect'] == '1') {
|
if ($domain['ssl_enabled'] == '1' && ($domain['ssl'] == '1' || $domain['ssl_redirect'] == '1')) {
|
||||||
// Adding ssl stuff if enabled
|
// Adding ssl stuff if enabled
|
||||||
$vhosts_filename_ssl = $this->getVhostFilename($domain, true);
|
$vhosts_filename_ssl = $this->getVhostFilename($domain, true);
|
||||||
$this->virtualhosts_data[$vhosts_filename_ssl] = '# Domain ID: ' . $domain['id'] . ' (SSL) - CustomerID: ' . $domain['customerid'] . ' - CustomerLogin: ' . $domain['loginname'] . "\n";
|
$this->virtualhosts_data[$vhosts_filename_ssl] = '# Domain ID: ' . $domain['id'] . ' (SSL) - CustomerID: ' . $domain['customerid'] . ' - CustomerLogin: ' . $domain['loginname'] . "\n";
|
||||||
|
|||||||
@@ -432,7 +432,7 @@ class Lighttpd extends HttpConfigBase
|
|||||||
|
|
||||||
protected function getVhostContent($domain, $ssl_vhost = false, $ipid = 0)
|
protected function getVhostContent($domain, $ssl_vhost = false, $ipid = 0)
|
||||||
{
|
{
|
||||||
if ($ssl_vhost === true && $domain['ssl'] != '1' && $domain['ssl_redirect'] != '1') {
|
if ($ssl_vhost === true && $domain['ssl'] != '1' && $domain['ssl_enabled'] != '1' && $domain['ssl_redirect'] != '1') {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -586,7 +586,7 @@ class Lighttpd extends HttpConfigBase
|
|||||||
$ssl_settings .= 'ssl.use-sslv2 = "disable"' . "\n";
|
$ssl_settings .= 'ssl.use-sslv2 = "disable"' . "\n";
|
||||||
$ssl_settings .= 'ssl.use-sslv3 = "disable"' . "\n";
|
$ssl_settings .= 'ssl.use-sslv3 = "disable"' . "\n";
|
||||||
$ssl_settings .= 'ssl.cipher-list = "' . $ssl_cipher_list . '"' . "\n";
|
$ssl_settings .= 'ssl.cipher-list = "' . $ssl_cipher_list . '"' . "\n";
|
||||||
$ssl_settings .= 'ssl.honor-cipher-order = "enable"' . "\n";
|
$ssl_settings .= 'ssl.honor-cipher-order = ' . ($domain['ssl_honorcipherorder'] == '1' ? '"enable"' : '"disable"') . "\n";
|
||||||
$ssl_settings .= 'ssl.pemfile = "' . \Froxlor\FileDir::makeCorrectFile($domain['ssl_cert_file']) . '"' . "\n";
|
$ssl_settings .= 'ssl.pemfile = "' . \Froxlor\FileDir::makeCorrectFile($domain['ssl_cert_file']) . '"' . "\n";
|
||||||
|
|
||||||
if ($domain['ssl_ca_file'] != '') {
|
if ($domain['ssl_ca_file'] != '') {
|
||||||
|
|||||||
@@ -272,6 +272,8 @@ class Nginx extends HttpConfigBase
|
|||||||
*/
|
*/
|
||||||
if ($row_ipsandports['ssl'] == '1') {
|
if ($row_ipsandports['ssl'] == '1') {
|
||||||
$row_ipsandports['domain'] = Settings::Get('system.hostname');
|
$row_ipsandports['domain'] = Settings::Get('system.hostname');
|
||||||
|
$row_ipsandports['ssl_honorcipherorder'] = Settings::Get('system.honorcipherorder');
|
||||||
|
$row_ipsandports['ssl_sessiontickets'] = Settings::Get('system.sessiontickets');
|
||||||
$this->nginx_data[$vhost_filename] .= $this->composeSslSettings($row_ipsandports);
|
$this->nginx_data[$vhost_filename] .= $this->composeSslSettings($row_ipsandports);
|
||||||
if ($row_ipsandports['ssl_specialsettings'] != '') {
|
if ($row_ipsandports['ssl_specialsettings'] != '') {
|
||||||
$this->nginx_data[$vhost_filename] .= $this->processSpecialConfigTemplate($row_ipsandports['ssl_specialsettings'], array(
|
$this->nginx_data[$vhost_filename] .= $this->processSpecialConfigTemplate($row_ipsandports['ssl_specialsettings'], array(
|
||||||
@@ -700,7 +702,8 @@ class Nginx extends HttpConfigBase
|
|||||||
// When >1.11.0: Defaults to auto, using recommended curves provided by OpenSSL.
|
// When >1.11.0: Defaults to auto, using recommended curves provided by OpenSSL.
|
||||||
// see https://github.com/Froxlor/Froxlor/issues/652
|
// see https://github.com/Froxlor/Froxlor/issues/652
|
||||||
// $sslsettings .= "\t" . 'ssl_ecdh_curve secp384r1;' . "\n";
|
// $sslsettings .= "\t" . 'ssl_ecdh_curve secp384r1;' . "\n";
|
||||||
$sslsettings .= "\t" . 'ssl_prefer_server_ciphers on;' . "\n";
|
$sslsettings .= "\t" . 'ssl_prefer_server_ciphers ' . (isset($domain_or_ip['ssl_honorcipherorder']) && $domain_or_ip['ssl_honorcipherorder'] == '1' ? 'on' : 'off') . ';' . "\n";
|
||||||
|
$sslsettings .= "\t" . 'ssl_session_tickets ' . (isset($domain_or_ip['ssl_sessiontickets']) && $domain_or_ip['ssl_sessiontickets'] == '1' ? 'on' : 'off') . ';' . "\n";
|
||||||
$sslsettings .= "\t" . 'ssl_session_cache shared:SSL:10m;' . "\n";
|
$sslsettings .= "\t" . 'ssl_session_cache shared:SSL:10m;' . "\n";
|
||||||
$sslsettings .= "\t" . 'ssl_certificate ' . \Froxlor\FileDir::makeCorrectFile($domain_or_ip['ssl_cert_file']) . ';' . "\n";
|
$sslsettings .= "\t" . 'ssl_certificate ' . \Froxlor\FileDir::makeCorrectFile($domain_or_ip['ssl_cert_file']) . ';' . "\n";
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ final class Froxlor
|
|||||||
const VERSION = '0.10.9';
|
const VERSION = '0.10.9';
|
||||||
|
|
||||||
// Database version (YYYYMMDDC where C is a daily counter)
|
// Database version (YYYYMMDDC where C is a daily counter)
|
||||||
const DBVERSION = '201911220';
|
const DBVERSION = '201912100';
|
||||||
|
|
||||||
// Distribution branding-tag (used for Debian etc.)
|
// Distribution branding-tag (used for Debian etc.)
|
||||||
const BRANDING = '';
|
const BRANDING = '';
|
||||||
|
|||||||
@@ -180,6 +180,20 @@ return array(
|
|||||||
'image' => 'icons/domain_add.png',
|
'image' => 'icons/domain_add.png',
|
||||||
'visible' => \Froxlor\Settings::Get('system.use_ssl') == '1' ? true : false,
|
'visible' => \Froxlor\Settings::Get('system.use_ssl') == '1' ? true : false,
|
||||||
'fields' => array(
|
'fields' => array(
|
||||||
|
'sslenabled' => array(
|
||||||
|
'visible' => ($ssl_ipsandports != '' ? true : false),
|
||||||
|
'label' => $lng['admin']['domain_sslenabled'],
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'values' => array(
|
||||||
|
array(
|
||||||
|
'label' => $lng['panel']['yes'],
|
||||||
|
'value' => '1'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
'value' => array(
|
||||||
|
'1'
|
||||||
|
)
|
||||||
|
),
|
||||||
'no_ssl_available_info' => array(
|
'no_ssl_available_info' => array(
|
||||||
'visible' => ($ssl_ipsandports == '' ? true : false),
|
'visible' => ($ssl_ipsandports == '' ? true : false),
|
||||||
'label' => 'SSL',
|
'label' => 'SSL',
|
||||||
@@ -356,6 +370,32 @@ return array(
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
'value' => array()
|
'value' => array()
|
||||||
|
),
|
||||||
|
'honorcipherorder' => array(
|
||||||
|
'visible' => ($ssl_ipsandports != '' ? true : false),
|
||||||
|
'label' => $lng['admin']['domain_honorcipherorder'],
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'values' => array(
|
||||||
|
array(
|
||||||
|
'label' => $lng['panel']['yes'],
|
||||||
|
'value' => '1'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
'value' => array()
|
||||||
|
),
|
||||||
|
'sessiontickets' => array(
|
||||||
|
'visible' => ($ssl_ipsandports != '' ? true : false) && \Froxlor\Settings::Get('system.webserver') != 'lighttpd',
|
||||||
|
'label' => $lng['admin']['domain_sessiontickets'],
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'values' => array(
|
||||||
|
array(
|
||||||
|
'label' => $lng['panel']['yes'],
|
||||||
|
'value' => '1'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
'value' => array(
|
||||||
|
'1'
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -212,6 +212,20 @@ return array(
|
|||||||
'image' => 'icons/domain_edit.png',
|
'image' => 'icons/domain_edit.png',
|
||||||
'visible' => \Froxlor\Settings::Get('system.use_ssl') == '1' ? true : false,
|
'visible' => \Froxlor\Settings::Get('system.use_ssl') == '1' ? true : false,
|
||||||
'fields' => array(
|
'fields' => array(
|
||||||
|
'sslenabled' => array(
|
||||||
|
'visible' => ($ssl_ipsandports != '' ? true : false),
|
||||||
|
'label' => $lng['admin']['domain_sslenabled'],
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'values' => array(
|
||||||
|
array(
|
||||||
|
'label' => $lng['panel']['yes'],
|
||||||
|
'value' => '1'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
'value' => array(
|
||||||
|
$result['ssl_enabled']
|
||||||
|
)
|
||||||
|
),
|
||||||
'no_ssl_available_info' => array(
|
'no_ssl_available_info' => array(
|
||||||
'visible' => ($ssl_ipsandports == '' ? true : false),
|
'visible' => ($ssl_ipsandports == '' ? true : false),
|
||||||
'label' => 'SSL',
|
'label' => 'SSL',
|
||||||
@@ -290,7 +304,7 @@ return array(
|
|||||||
'label' => $lng['serversettings']['ssl']['ssl_protocols']['title'],
|
'label' => $lng['serversettings']['ssl']['ssl_protocols']['title'],
|
||||||
'desc' => $lng['serversettings']['ssl']['ssl_protocols']['description'],
|
'desc' => $lng['serversettings']['ssl']['ssl_protocols']['description'],
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'value' => !empty($result['ssl_protocols']) ? explode(",", $result['ssl_protocols']) : explode(",", \Froxlor\Settings::Get('system.ssl_protocols')),
|
'value' => ! empty($result['ssl_protocols']) ? explode(",", $result['ssl_protocols']) : explode(",", \Froxlor\Settings::Get('system.ssl_protocols')),
|
||||||
'values' => array(
|
'values' => array(
|
||||||
array(
|
array(
|
||||||
'value' => 'TLSv1',
|
'value' => 'TLSv1',
|
||||||
@@ -316,14 +330,14 @@ return array(
|
|||||||
'label' => $lng['serversettings']['ssl']['ssl_cipher_list']['title'],
|
'label' => $lng['serversettings']['ssl']['ssl_cipher_list']['title'],
|
||||||
'desc' => $lng['serversettings']['ssl']['ssl_cipher_list']['description'],
|
'desc' => $lng['serversettings']['ssl']['ssl_cipher_list']['description'],
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'value' => !empty($result['ssl_cipher_list']) ? $result['ssl_cipher_list'] : \Froxlor\Settings::Get('system.ssl_cipher_list')
|
'value' => ! empty($result['ssl_cipher_list']) ? $result['ssl_cipher_list'] : \Froxlor\Settings::Get('system.ssl_cipher_list')
|
||||||
),
|
),
|
||||||
'tlsv13_cipher_list' => array(
|
'tlsv13_cipher_list' => array(
|
||||||
'visible' => (($ssl_ipsandports != '' ? true : false) && $userinfo['change_serversettings'] == '1' && \Froxlor\Settings::Get('system.webserver') == "apache2" && \Froxlor\Settings::Get('system.apache24') == 1 ? true : false),
|
'visible' => (($ssl_ipsandports != '' ? true : false) && $userinfo['change_serversettings'] == '1' && \Froxlor\Settings::Get('system.webserver') == "apache2" && \Froxlor\Settings::Get('system.apache24') == 1 ? true : false),
|
||||||
'label' => $lng['serversettings']['ssl']['tlsv13_cipher_list']['title'],
|
'label' => $lng['serversettings']['ssl']['tlsv13_cipher_list']['title'],
|
||||||
'desc' => $lng['serversettings']['ssl']['tlsv13_cipher_list']['description'],
|
'desc' => $lng['serversettings']['ssl']['tlsv13_cipher_list']['description'],
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
'value' => !empty($result['tlsv13_cipher_list']) ? $result['tlsv13_cipher_list'] : \Froxlor\Settings::Get('system.tlsv13_cipher_list')
|
'value' => ! empty($result['tlsv13_cipher_list']) ? $result['tlsv13_cipher_list'] : \Froxlor\Settings::Get('system.tlsv13_cipher_list')
|
||||||
),
|
),
|
||||||
'ssl_specialsettings' => array(
|
'ssl_specialsettings' => array(
|
||||||
'visible' => ($userinfo['change_serversettings'] == '1' ? true : false),
|
'visible' => ($userinfo['change_serversettings'] == '1' ? true : false),
|
||||||
@@ -401,6 +415,34 @@ return array(
|
|||||||
'value' => array(
|
'value' => array(
|
||||||
$result['ocsp_stapling']
|
$result['ocsp_stapling']
|
||||||
)
|
)
|
||||||
|
),
|
||||||
|
'honorcipherorder' => array(
|
||||||
|
'visible' => ($ssl_ipsandports != '' ? true : false),
|
||||||
|
'label' => $lng['admin']['domain_honorcipherorder'],
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'values' => array(
|
||||||
|
array(
|
||||||
|
'label' => $lng['panel']['yes'],
|
||||||
|
'value' => '1'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
'value' => array(
|
||||||
|
$result['ssl_honorcipherorder']
|
||||||
|
)
|
||||||
|
),
|
||||||
|
'sessiontickets' => array(
|
||||||
|
'visible' => ($ssl_ipsandports != '' ? true : false) && \Froxlor\Settings::Get('system.webserver') != 'lighttpd',
|
||||||
|
'label' => $lng['admin']['domain_sessiontickets'],
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'values' => array(
|
||||||
|
array(
|
||||||
|
'label' => $lng['panel']['yes'],
|
||||||
|
'value' => '1'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
'value' => array(
|
||||||
|
$result['ssl_sessiontickets']
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -83,6 +83,19 @@ return array(
|
|||||||
'image' => 'icons/domain_add.png',
|
'image' => 'icons/domain_add.png',
|
||||||
'visible' => \Froxlor\Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports != '' ? true : false) : false,
|
'visible' => \Froxlor\Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports != '' ? true : false) : false,
|
||||||
'fields' => array(
|
'fields' => array(
|
||||||
|
'sslenabled' => array(
|
||||||
|
'label' => $lng['admin']['domain_sslenabled'],
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'values' => array(
|
||||||
|
array(
|
||||||
|
'label' => $lng['panel']['yes'],
|
||||||
|
'value' => '1'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
'value' => array(
|
||||||
|
'1'
|
||||||
|
)
|
||||||
|
),
|
||||||
'ssl_redirect' => array(
|
'ssl_redirect' => array(
|
||||||
'label' => $lng['domains']['ssl_redirect']['title'],
|
'label' => $lng['domains']['ssl_redirect']['title'],
|
||||||
'desc' => $lng['domains']['ssl_redirect']['description'],
|
'desc' => $lng['domains']['ssl_redirect']['description'],
|
||||||
|
|||||||
@@ -99,6 +99,19 @@ return array(
|
|||||||
'image' => 'icons/domain_edit.png',
|
'image' => 'icons/domain_edit.png',
|
||||||
'visible' => \Froxlor\Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports != '' ? (\Froxlor\Domain\Domain::domainHasSslIpPort($result['id']) ? true : false) : false) : false,
|
'visible' => \Froxlor\Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports != '' ? (\Froxlor\Domain\Domain::domainHasSslIpPort($result['id']) ? true : false) : false) : false,
|
||||||
'fields' => array(
|
'fields' => array(
|
||||||
|
'sslenabled' => array(
|
||||||
|
'label' => $lng['admin']['domain_sslenabled'],
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'values' => array(
|
||||||
|
array(
|
||||||
|
'label' => $lng['panel']['yes'],
|
||||||
|
'value' => '1'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
'value' => array(
|
||||||
|
$result['ssl_enabled']
|
||||||
|
)
|
||||||
|
),
|
||||||
'ssl_redirect' => array(
|
'ssl_redirect' => array(
|
||||||
'label' => $lng['domains']['ssl_redirect']['title'],
|
'label' => $lng['domains']['ssl_redirect']['title'],
|
||||||
'desc' => $lng['domains']['ssl_redirect']['description'] . ($result['temporary_ssl_redirect'] > 1 ? $lng['domains']['ssl_redirect_temporarilydisabled'] : ''),
|
'desc' => $lng['domains']['ssl_redirect']['description'] . ($result['temporary_ssl_redirect'] > 1 ? $lng['domains']['ssl_redirect_temporarilydisabled'] : ''),
|
||||||
|
|||||||
@@ -2082,3 +2082,6 @@ $lng['admin']['domain_override_tls'] = 'Override system TLS settings';
|
|||||||
$lng['domains']['isaliasdomainof'] = 'Is aliasdomain for %s';
|
$lng['domains']['isaliasdomainof'] = 'Is aliasdomain for %s';
|
||||||
$lng['serversettings']['apply_specialsettings_default']['title'] = 'Default value for "' . $lng['admin']['specialsettingsforsubdomains'] . "' setting when editing a domain";
|
$lng['serversettings']['apply_specialsettings_default']['title'] = 'Default value for "' . $lng['admin']['specialsettingsforsubdomains'] . "' setting when editing a domain";
|
||||||
$lng['serversettings']['apply_phpconfigs_default']['title'] = 'Default value for "' . $lng['admin']['phpsettingsforsubdomains'] . "' setting when editing a domain";
|
$lng['serversettings']['apply_phpconfigs_default']['title'] = 'Default value for "' . $lng['admin']['phpsettingsforsubdomains'] . "' setting when editing a domain";
|
||||||
|
$lng['admin']['domain_sslenabled'] = 'Enable usage of SSL';
|
||||||
|
$lng['admin']['domain_honorcipherorder'] = 'Honor the (server) cipher order, default <strong>no</strong>';
|
||||||
|
$lng['admin']['domain_sessiontickets'] = 'Enable TLS sessiontickets (RFC 5077), default <strong>yes</strong>';
|
||||||
|
|||||||
@@ -1729,3 +1729,6 @@ $lng['admin']['domain_override_tls'] = 'Überschreibe System TLS Einstellungen';
|
|||||||
$lng['domains']['isaliasdomainof'] = 'Ist Aliasdomain für %s';
|
$lng['domains']['isaliasdomainof'] = 'Ist Aliasdomain für %s';
|
||||||
$lng['serversettings']['apply_specialsettings_default']['title'] = 'Standardwert für "' . $lng['admin']['specialsettingsforsubdomains'] . "' Einstellung beim Bearbeiten einer Domain";
|
$lng['serversettings']['apply_specialsettings_default']['title'] = 'Standardwert für "' . $lng['admin']['specialsettingsforsubdomains'] . "' Einstellung beim Bearbeiten einer Domain";
|
||||||
$lng['serversettings']['apply_phpconfigs_default']['title'] = 'Standardwert für "' . $lng['admin']['phpsettingsforsubdomains'] . "' Einstellung beim Bearbeiten einer Domain";
|
$lng['serversettings']['apply_phpconfigs_default']['title'] = 'Standardwert für "' . $lng['admin']['phpsettingsforsubdomains'] . "' Einstellung beim Bearbeiten einer Domain";
|
||||||
|
$lng['admin']['domain_sslenabled'] = 'Aktiviere Nutzung von SSL';
|
||||||
|
$lng['admin']['domain_honorcipherorder'] = 'Bevorzuge die serverseitige Cipher Reihenfolge, Standardwert <strong>nein</strong>';
|
||||||
|
$lng['admin']['domain_sessiontickets'] = 'Aktiviere TLS Sessiontickets (RFC 5077), Standardwert <strong>ja</strong>';
|
||||||
|
|||||||
Reference in New Issue
Block a user