From 604f37bd1791ce213bebccaa2150b537345782f9 Mon Sep 17 00:00:00 2001 From: "Michael Kaufmann (d00p)" Date: Mon, 7 Mar 2016 13:47:22 +0100 Subject: [PATCH] intriduce DB version (again) so we can keep release-version numbers while updating the database; added enable/disable switch for Let's Encrypt Signed-off-by: Michael Kaufmann (d00p) --- actions/admin/settings/131.ssl.php | 9 +++ admin_updates.php | 19 ++++-- install/froxlor.sql | 4 +- .../updates/froxlor/0.9/update_0.9.inc.php | 17 +++++ install/updates/preconfig.php | 7 ++- .../preconfig/0.9/preconfig_0.9.inc.php | 10 ++- lib/cron_init.php | 5 +- .../admin/domains/formfield.domains_add.php | 4 +- .../admin/domains/formfield.domains_edit.php | 2 +- .../domains/formfield.domains_add.php | 2 +- .../domains/formfield.domains_edit.php | 2 +- .../froxlor/function.updateFunctions.php | 62 +++++++++++++++++++ lib/init.php | 2 +- lib/version.inc.php | 4 +- lng/english.lng.php | 18 +++--- lng/german.lng.php | 18 +++--- 16 files changed, 149 insertions(+), 36 deletions(-) diff --git a/actions/admin/settings/131.ssl.php b/actions/admin/settings/131.ssl.php index 90c7a928..92077c01 100644 --- a/actions/admin/settings/131.ssl.php +++ b/actions/admin/settings/131.ssl.php @@ -80,6 +80,15 @@ return array( 'default' => '', 'save_method' => 'storeSettingField', ), + 'system_leenabled' => array( + 'label' => $lng['serversettings']['leenabled'], + 'settinggroup' => 'system', + 'varname' => 'leenabled', + 'type' => 'bool', + 'default' => false, + 'cronmodule' => 'froxlor/letsencrypt', + 'save_method' => 'storeSettingField' + ), 'system_letsencryptca' => array( 'label' => $lng['serversettings']['letsencryptca'], 'settinggroup' => 'system', diff --git a/admin_updates.php b/admin_updates.php index dda17bb0..38ab2459 100644 --- a/admin_updates.php +++ b/admin_updates.php @@ -54,7 +54,7 @@ if ($page == 'overview') { } } - if (hasUpdates($version)) { + if (hasDbUpdates($dbversion)) { $successful_update = false; $message = ''; @@ -85,15 +85,26 @@ if ($page == 'overview') { if (!$successful_update) { $current_version = Settings::Get('panel.version'); + $current_db_version = Settings::Get('panel.dbversion'); + if (empty($current_db_version)) { + $current_db_version = "0"; + } $new_version = $version; + $new_db_version = $dbversion; $ui_text = $lng['update']['update_information']['part_a']; - $ui_text = str_replace('%curversion', $current_version, $ui_text); - $ui_text = str_replace('%newversion', $new_version, $ui_text); + if ($version != $current_version) { + $ui_text = str_replace('%curversion', $current_version, $ui_text); + $ui_text = str_replace('%newversion', $new_version, $ui_text); + } else { + // show db version + $ui_text = str_replace('%curversion', $current_db_version, $ui_text); + $ui_text = str_replace('%newversion', $new_db_version, $ui_text); + } $update_information = $ui_text; include_once './install/updates/preconfig.php'; - $preconfig = getPreConfig($current_version); + $preconfig = getPreConfig($current_version, $current_db_version); if ($preconfig != '') { $update_information .= '
' . $preconfig . $message; } diff --git a/install/froxlor.sql b/install/froxlor.sql index 6afd3bfa..d3e99dcf 100644 --- a/install/froxlor.sql +++ b/install/froxlor.sql @@ -524,6 +524,7 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'letsencryptchallengepath', '/var/www/froxlor'), ('system', 'letsencryptkeysize', '4096'), ('system', 'letsencryptreuseold', 0), + ('system', 'leenabled', '0'), ('panel', 'decimal_places', '4'), ('panel', 'adminmail', 'admin@SERVERNAME'), ('panel', 'phpmyadmin_url', ''), @@ -554,7 +555,8 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('panel', 'password_numeric', '0'), ('panel', 'password_special_char_required', '0'), ('panel', 'password_special_char', '!?<>§$%+#=@'), - ('panel', 'version', '0.9.35-rc1'); + ('panel', 'version', '0.9.35-rc1'), + ('panel', 'db_version', '201603070'); DROP TABLE IF EXISTS `panel_tasks`; diff --git a/install/updates/froxlor/0.9/update_0.9.inc.php b/install/updates/froxlor/0.9/update_0.9.inc.php index 30415bf8..6d9139f1 100644 --- a/install/updates/froxlor/0.9/update_0.9.inc.php +++ b/install/updates/froxlor/0.9/update_0.9.inc.php @@ -3144,3 +3144,20 @@ if (isFroxlorVersion('0.9.35-dev7')) { updateToVersion('0.9.35-rc1'); } + +if (isFroxlorVersion('0.9.35-rc1')) { + + Settings::AddNew("panel.db_version", "201603070"); + + showUpdateStep("Removing unused table and fields from database"); + Database::query("DROP TABLE IF EXISTS `panel_vhostconfigs`;"); + Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS ."` DROP `vhost_usedefaultlocation`;"); + Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS ."` DROP `vhostsettingid`;"); + lastStepStatus(0); + + showUpdateStep("Adding new setting to enable/disable Let's Encrypt"); + $enable_letsencrypt = isset($_POST['enable_letsencrypt']) ? (int)$_POST['enable_letsencrypt'] : "1"; + Settings::AddNew("system.leenabled", $enable_letsencrypt); + lastStepStatus(0); + +} diff --git a/install/updates/preconfig.php b/install/updates/preconfig.php index 1d0ffdad..89c28f3c 100644 --- a/install/updates/preconfig.php +++ b/install/updates/preconfig.php @@ -21,17 +21,18 @@ * outputs various content before the update process * can be continued (askes for agreement whatever is being asked) * - * @param string version + * @param string $current_version + * @param int $current_db_version * * @return string */ -function getPreConfig($current_version) +function getPreConfig($current_version, $current_db_version) { $has_preconfig = false; $return = '

PLEASE NOTE - Important update notifications

'; include_once makeCorrectFile(dirname(__FILE__).'/preconfig/0.9/preconfig_0.9.inc.php'); - parseAndOutputPreconfig($has_preconfig, $return, $current_version); + parseAndOutputPreconfig($has_preconfig, $return, $current_version, $current_db_version); $return .= '

'.makecheckbox('update_changesagreed', 'I have read the update notifications above and I am aware of the changes made to my system.', '1', true, '0', true); $return .= '
'; diff --git a/install/updates/preconfig/0.9/preconfig_0.9.inc.php b/install/updates/preconfig/0.9/preconfig_0.9.inc.php index 8cea5c65..8a0f05d8 100644 --- a/install/updates/preconfig/0.9/preconfig_0.9.inc.php +++ b/install/updates/preconfig/0.9/preconfig_0.9.inc.php @@ -24,7 +24,7 @@ * * @return null */ -function parseAndOutputPreconfig(&$has_preconfig, &$return, $current_version) { +function parseAndOutputPreconfig(&$has_preconfig, &$return, $current_version, $current_db_version) { global $lng; @@ -700,4 +700,12 @@ function parseAndOutputPreconfig(&$has_preconfig, &$return, $current_version) { $question .= '
'; eval("\$return.=\"" . getTemplate("update/preconfigitem") . "\";"); } + + if (versionInUpdate($current_db_version, '201603070')) { + $has_preconfig = true; + $description = 'You can chose whether you want to enable or disable our Let\'s Encrypt implementation.

'; + $question = 'Do you want to enable Let\'s Encrypt? (default: yes): '; + $question.= makeyesno('enable_letsencrypt', '1', '0', '1').'
'; + eval("\$return.=\"" . getTemplate("update/preconfigitem") . "\";"); + } } diff --git a/lib/cron_init.php b/lib/cron_init.php index eb90ea7c..b8dacfa2 100644 --- a/lib/cron_init.php +++ b/lib/cron_init.php @@ -177,8 +177,7 @@ if (((int)Settings::Get('system.mod_fcgid') == 1 && (int)Settings::Get('system.m $cronlog = FroxlorLogger::getInstanceOf(array('loginname' => 'cronjob')); fwrite($debugHandler, 'Logger has been included' . "\n"); -if (Settings::Get('panel.version') == null - || Settings::Get('panel.version') != $version +if (hasUpdates($version) || hasDbUpdates($dbversion) ) { if (Settings::Get('system.cron_allowautoupdate') == null || Settings::Get('system.cron_allowautoupdate') == 0 @@ -190,7 +189,7 @@ if (Settings::Get('panel.version') == null unlink($lockfile); $errormessage = "Version of file doesn't match version of database. Exiting...\n\n"; $errormessage.= "Possible reason: Froxlor update\n"; - $errormessage.= "Information: Current version in database: ".Settings::Get('panel.version')." - version of Froxlor files: ".$version."\n"; + $errormessage.= "Information: Current version in database: ".Settings::Get('panel.version')." (DB: ".Settings::Get('panel.db_version').") - version of Froxlor files: ".$version." (DB: ".$dbversion.")\n"; $errormessage.= "Solution: Please visit your Foxlor admin interface for further information.\n"; dieWithMail($errormessage); } diff --git a/lib/formfields/admin/domains/formfield.domains_add.php b/lib/formfields/admin/domains/formfield.domains_add.php index 94876c1b..0b9972d6 100644 --- a/lib/formfields/admin/domains/formfield.domains_add.php +++ b/lib/formfields/admin/domains/formfield.domains_add.php @@ -74,7 +74,7 @@ return array( 'type' => 'text', 'size' => 10 ), - 'termination_date' => array( + 'termination_date' => array( 'label' => $lng['domains']['termination_date'], 'desc' => $lng['panel']['dateformat'], 'type' => 'text', @@ -120,7 +120,7 @@ return array( 'value' => array() ), 'letsencrypt' => array( - 'visible' => (Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports != '' ? true : false) : false), + 'visible' => (Settings::Get('system.use_ssl') == '1' ? (Settings::Get('system.leenabled') == '1' ? ($ssl_ipsandports != '' ? true : false) : false) : false), 'label' => $lng['admin']['letsencrypt']['title'], 'desc' => $lng['admin']['letsencrypt']['description'], 'type' => 'checkbox', diff --git a/lib/formfields/admin/domains/formfield.domains_edit.php b/lib/formfields/admin/domains/formfield.domains_edit.php index 14d16fce..63ff7d50 100644 --- a/lib/formfields/admin/domains/formfield.domains_edit.php +++ b/lib/formfields/admin/domains/formfield.domains_edit.php @@ -132,7 +132,7 @@ return array( 'value' => array($result['ssl_redirect']) ), 'letsencrypt' => array( - 'visible' => (Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports != '' ? true : false) : false), + 'visible' => (Settings::Get('system.use_ssl') == '1' ? (Settings::Get('system.leenabled') == '1' ? ($ssl_ipsandports != '' ? true : false) : false) : false), 'label' => $lng['admin']['letsencrypt']['title'], 'desc' => $lng['admin']['letsencrypt']['description'], 'type' => 'checkbox', diff --git a/lib/formfields/customer/domains/formfield.domains_add.php b/lib/formfields/customer/domains/formfield.domains_add.php index 753903ea..ed2ee934 100644 --- a/lib/formfields/customer/domains/formfield.domains_add.php +++ b/lib/formfields/customer/domains/formfield.domains_add.php @@ -71,7 +71,7 @@ return array( 'value' => array() ), 'letsencrypt' => array( - 'visible' => (Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports != '' ? true : false) : false), + 'visible' => (Settings::Get('system.use_ssl') == '1' ? (Settings::Get('system.leenabled') == '1' ? ($ssl_ipsandports != '' ? true : false) : false) : false), 'label' => $lng['customer']['letsencrypt']['title'], 'desc' => $lng['customer']['letsencrypt']['description'], 'type' => 'checkbox', diff --git a/lib/formfields/customer/domains/formfield.domains_edit.php b/lib/formfields/customer/domains/formfield.domains_edit.php index e7e9f86e..aa408548 100644 --- a/lib/formfields/customer/domains/formfield.domains_edit.php +++ b/lib/formfields/customer/domains/formfield.domains_edit.php @@ -87,7 +87,7 @@ return array( 'value' => array($result['ssl_redirect']) ), 'letsencrypt' => array( - 'visible' => (Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports != '' ? (domainHasSslIpPort($result['id']) ? true : false) : false) : false), + 'visible' => (Settings::Get('system.use_ssl') == '1' ? (Settings::Get('system.leenabled') == '1' ? ($ssl_ipsandports != '' ? (domainHasSslIpPort($result['id']) ? true : false) : false) : false) : false), 'label' => $lng['customer']['letsencrypt']['title'], 'desc' => $lng['customer']['letsencrypt']['description'], 'type' => 'checkbox', diff --git a/lib/functions/froxlor/function.updateFunctions.php b/lib/functions/froxlor/function.updateFunctions.php index 2ba95f6f..ca359cc1 100644 --- a/lib/functions/froxlor/function.updateFunctions.php +++ b/lib/functions/froxlor/function.updateFunctions.php @@ -188,3 +188,65 @@ function validateUpdateLogFile($filename) { } return '/tmp/froxlor_update.log'; } + +/** + * Function isDatabaseVersion + * + * checks if a given database-version is the current one + * + * @param int $to_check version to check + * + * @return bool true if version to check matches, else false + */ +function isDatabaseVersion($to_check = null) { + + if (Settings::Get('panel.frontend') == 'froxlor' + && Settings::Get('panel.db_version') == $to_check + ) { + return true; + } + return false; +} + +/** + * Function hasUpdates + * + * checks if a given database-version is not equal the current one + * + * @param int $to_check version to check + * + * @return bool true if version to check does not match, else false + */ +function hasDbUpdates($to_check = null) { + + if (Settings::Get('panel.db_version') == null + || Settings::Get('panel.db_version') != $to_check + ) { + return true; + } + return false; +} + +/** + * Function updateToDbVersion + * + * updates the panel.version field + * to the given value (no checks here!) + * + * @param string $new_version new-version + * + * @return bool true on success, else false + */ +function updateToDbVersion($new_version = null) { + + if ($new_version !== null && $new_version != '') { + $upd_stmt = Database::prepare(" + UPDATE `".TABLE_PANEL_SETTINGS."` SET `value` = :newversion + WHERE `settinggroup` = 'panel' AND `varname` = 'db_version'" + ); + Database::pexecute($upd_stmt, array('newversion' => $new_version)); + Settings::Set('panel.db_version', $new_version); + return true; + } + return false; +} diff --git a/lib/init.php b/lib/init.php index b2e1dfab..585588ec 100644 --- a/lib/init.php +++ b/lib/init.php @@ -408,7 +408,7 @@ if (isset($userinfo['loginname']) */ $navigation = ""; if (AREA == 'admin' || AREA == 'customer') { - if (hasUpdates($version)) { + if (hasUpdates($version) || hasDbUpdates($dbversion)) { /* * if froxlor-files have been updated * but not yet configured by the admin diff --git a/lib/version.inc.php b/lib/version.inc.php index 05e6952c..3475e7fe 100644 --- a/lib/version.inc.php +++ b/lib/version.inc.php @@ -18,8 +18,8 @@ // Main version variable $version = '0.9.35-rc1'; -// Database version (unused, old stuff from SysCP) -$dbversion = '2'; +// Database version (YYYYMMDDC where C is a daily counter) +$dbversion = '201603070'; // Distribution branding-tag (used for Debian etc.) $branding = ''; diff --git a/lng/english.lng.php b/lng/english.lng.php index 449ceb90..6754409f 100644 --- a/lng/english.lng.php +++ b/lng/english.lng.php @@ -1931,26 +1931,28 @@ $lng['opcacheinfo']['false'] = 'false'; // Added for let's encrypt $lng['admin']['letsencrypt']['title'] = 'Use Let\'s Encrypt'; -$lng['admin']['letsencrypt']['description'] = 'Get a free certificate from Let\'s Encrypt. The certificate will be created and renewed automatically.
ATTENTION:If wildcards are enabled, this option will automatically be disabled. This feature is still in beta.'; +$lng['admin']['letsencrypt']['description'] = 'Get a free certificate from Let\'s Encrypt. The certificate will be created and renewed automatically.
ATTENTION: If wildcards are enabled, this option will automatically be disabled. This feature is still in beta.'; $lng['customer']['letsencrypt']['title'] = 'Use Let\'s Encrypt'; -$lng['customer']['letsencrypt']['description'] = 'Get a free certificate from Let\'s Encrypt. The certificate will be created and renewed automatically.
ATTENTION:"This feature is still in beta.'; +$lng['customer']['letsencrypt']['description'] = 'Get a free certificate from Let\'s Encrypt. The certificate will be created and renewed automatically.
ATTENTION: This feature is still in beta.'; $lng['error']['sslredirectonlypossiblewithsslipport'] = 'Using Let\'s Encrypt is only possible when the domain has at least one ssl-enabled IP/port combination assigned.'; $lng['error']['nowildcardwithletsencrypt'] = 'Let\'s Encrypt cannot (yet) handle wildcard-domains. Please set the ServerAlias to WWW or disable it completely'; $lng['error']['letsencryptdoesnotworkwithaliasdomains'] = "Usage of Let's Encrypt is not possible for aliasdomains at the moment. Please disable Let's Encrypt or AliasDomain"; $lng['panel']['letsencrypt'] = 'Using Let\'s encrypt'; $lng['crondesc']['cron_letsencrypt'] = 'updating Let\'s Encrypt certificates'; $lng['serversettings']['letsencryptca']['title'] = "Let's Encrypt environment"; -$lng['serversettings']['letsencryptca']['description'] = "Environment to be used for Let's Encrypt certificates.
ATTENTION:Let's Encrypt is still in beta"; +$lng['serversettings']['letsencryptca']['description'] = "Environment to be used for Let's Encrypt certificates.
ATTENTION: Let's Encrypt is still in beta"; $lng['serversettings']['letsencryptcountrycode']['title'] = "Let's Encrypt country code"; -$lng['serversettings']['letsencryptcountrycode']['description'] = "2 letter country code used to generate Let's Encrypt certificates.
ATTENTION:Let's Encrypt is still in beta"; +$lng['serversettings']['letsencryptcountrycode']['description'] = "2 letter country code used to generate Let's Encrypt certificates.
ATTENTION: Let's Encrypt is still in beta"; $lng['serversettings']['letsencryptstate']['title'] = "Let's Encrypt state"; -$lng['serversettings']['letsencryptstate']['description'] = "State used to generate Let's Encrypt certificates.
ATTENTION:Let's Encrypt is still in beta"; +$lng['serversettings']['letsencryptstate']['description'] = "State used to generate Let's Encrypt certificates.
ATTENTION: Let's Encrypt is still in beta"; $lng['serversettings']['letsencryptchallengepath']['title'] = "Path for Let's Encrypt challenges"; -$lng['serversettings']['letsencryptchallengepath']['description'] = "Directory where the Let's Encrypt challenges should be offered from via a global alias.
ATTENTION:Let's Encrypt is still in beta"; +$lng['serversettings']['letsencryptchallengepath']['description'] = "Directory where the Let's Encrypt challenges should be offered from via a global alias.
ATTENTION: Let's Encrypt is still in beta"; $lng['serversettings']['letsencryptkeysize']['title'] = "Key size for new Let's Encrypt certificates"; -$lng['serversettings']['letsencryptkeysize']['description'] = "Size of the key in Bits for new Let's Encrypt certificates.
ATTENTION:Let's Encrypt is still in beta"; +$lng['serversettings']['letsencryptkeysize']['description'] = "Size of the key in Bits for new Let's Encrypt certificates.
ATTENTION: Let's Encrypt is still in beta"; $lng['serversettings']['letsencryptreuseold']['title'] = "Re-use Let's Encrypt key / CSR"; -$lng['serversettings']['letsencryptreuseold']['description'] = "If activated, the same key and CSR will be used for every renew, otherwise a new key / CSR will be generated every time.
ATTENTION:Let's Encrypt is still in beta"; +$lng['serversettings']['letsencryptreuseold']['description'] = "If activated, the same key and CSR will be used for every renew, otherwise a new key / CSR will be generated every time.
ATTENTION: Let's Encrypt is still in beta"; +$lng['serversettings']['leenabled']['title'] = "Enable Let's Encrypt"; +$lng['serversettings']['leenabled']['description'] = "If activated, customers are able to let froxlor automatically generate and renew Let's Encrypt ssl-certificates for domains with a ssl IP/port."; $lng['domains']['ssl_redirect_temporarilydisabled'] = "
The SSL redirect is temporarily deactivated while a new Let's Encrypt certificate is generated. It will be activated again after the certificate was generated."; // Autoupdate diff --git a/lng/german.lng.php b/lng/german.lng.php index 640b58b3..35372cee 100644 --- a/lng/german.lng.php +++ b/lng/german.lng.php @@ -1585,26 +1585,28 @@ $lng['admin']['mod_fcgid_umask']['title'] = 'Umask (Standard: 022)'; // Added for let's encrypt $lng['admin']['letsencrypt']['title'] = 'Benutze Let\'s Encrypt'; -$lng['admin']['letsencrypt']['description'] = 'Holt ein kostenloses Zertifikat von Let\'s Encrypt. Das Zertifikat wird automatisch erstellt und verlängert.
ACHTUNG:Wenn Wildcards aktiviert sind, wird diese Option automatisch deaktiviert. Dieses Feature befindet sich noch im Test.'; +$lng['admin']['letsencrypt']['description'] = 'Holt ein kostenloses Zertifikat von Let\'s Encrypt. Das Zertifikat wird automatisch erstellt und verlängert.
ACHTUNG: Wenn Wildcards aktiviert sind, wird diese Option automatisch deaktiviert. Dieses Feature befindet sich noch im Test.'; $lng['customer']['letsencrypt']['title'] = 'Benutze Let\'s Encrypt'; -$lng['customer']['letsencrypt']['description'] = 'Holt ein kostenloses Zertifikat von Let\'s Encrypt. Das Zertifikat wird automatisch erstellt und verlängert.
ACHTUNG:Dieses Feature befindet sich noch im Test.'; +$lng['customer']['letsencrypt']['description'] = 'Holt ein kostenloses Zertifikat von Let\'s Encrypt. Das Zertifikat wird automatisch erstellt und verlängert.
ACHTUNG: Dieses Feature befindet sich noch im Test.'; $lng['error']['sslredirectonlypossiblewithsslipport'] = 'Die Nutzung von Let\'s Encrypt ist nur möglich, wenn die Domain mindestens eine IP/Port - Kombination mit aktiviertem SSL zugewiesen hat.'; $lng['error']['nowildcardwithletsencrypt'] = 'Let\'s Encrypt kann (noch) nicht mit Wildcard-Domains umgehen. Bitte den ServerAlias auf WWW setzen oder deaktivieren'; $lng['error']['letsencryptdoesnotworkwithaliasdomains'] = "Die Nutzung von Let's Encrypt ist mit AliasDomains derzeit nicht möglich. Bitte Let's Encrypt oder AliasDomain deaktivieren"; $lng['panel']['letsencrypt'] = 'Benutzt Let\'s encrypt'; $lng['crondesc']['cron_letsencrypt'] = 'aktualisiert Let\'s Encrypt Zertifikate'; $lng['serversettings']['letsencryptca']['title'] = "Let's Encrypt Umgebung"; -$lng['serversettings']['letsencryptca']['description'] = "Let's Encrypt - Umgebung, welche genutzt wird um Zertifikate zu bestellen.
ACHTUNG:Let's Encrypt befindet sich noch im Test"; +$lng['serversettings']['letsencryptca']['description'] = "Let's Encrypt - Umgebung, welche genutzt wird um Zertifikate zu bestellen.
ACHTUNG: Let's Encrypt befindet sich noch im Test"; $lng['serversettings']['letsencryptcountrycode']['title'] = "Let's Encrypt Ländercode"; -$lng['serversettings']['letsencryptcountrycode']['description'] = "2 - stelliger Ländercode, welcher benutzt wird um Let's Encrypt - Zertifikate zu bestellen.
ACHTUNG:Let's Encrypt befindet sich noch im Test"; +$lng['serversettings']['letsencryptcountrycode']['description'] = "2 - stelliger Ländercode, welcher benutzt wird um Let's Encrypt - Zertifikate zu bestellen.
ACHTUNG: Let's Encrypt befindet sich noch im Test"; $lng['serversettings']['letsencryptstate']['title'] = "Let's Encrypt Bundesland"; -$lng['serversettings']['letsencryptstate']['description'] = "Bundesland, welches benutzt wird um Let's Encrypt - Zertifikate zu bestellen.
ACHTUNG:Let's Encrypt befindet sich noch im Test"; +$lng['serversettings']['letsencryptstate']['description'] = "Bundesland, welches benutzt wird um Let's Encrypt - Zertifikate zu bestellen.
ACHTUNG: Let's Encrypt befindet sich noch im Test"; $lng['serversettings']['letsencryptchallengepath']['title'] = "Verzeichnis für Let's Encrypt challenges"; -$lng['serversettings']['letsencryptchallengepath']['description'] = "Let's Encrypt challenges werden aus diesem Verzeichnis über einen globalen Alias ausgeliefert.
ACHTUNG:Let's Encrypt befindet sich noch im Test"; +$lng['serversettings']['letsencryptchallengepath']['description'] = "Let's Encrypt challenges werden aus diesem Verzeichnis über einen globalen Alias ausgeliefert.
ACHTUNG: Let's Encrypt befindet sich noch im Test"; $lng['serversettings']['letsencryptkeysize']['title'] = "Schlüsselgröße für neue Let's Encrypt Zertifikate"; -$lng['serversettings']['letsencryptkeysize']['description'] = "Größe des Schlüssels in Bit für neue Let's Encrypt Zertifikate.
ACHTUNG:Let's Encrypt befindet sich noch im Test"; +$lng['serversettings']['letsencryptkeysize']['description'] = "Größe des Schlüssels in Bit für neue Let's Encrypt Zertifikate.
ACHTUNG: Let's Encrypt befindet sich noch im Test"; $lng['serversettings']['letsencryptreuseold']['title'] = "Let's Encrypt Schlüssel / CSR wiederverwenden"; -$lng['serversettings']['letsencryptreuseold']['description'] = "Wenn dies aktiviet ist, werden der alte Schlüssel und CSR bei jeder Verlängerung verwendet, andernfalls wird ein neues Paar generiert.
ACHTUNG:Let's Encrypt befindet sich noch im Test"; +$lng['serversettings']['letsencryptreuseold']['description'] = "Wenn dies aktiviert ist, werden der alte Schlüssel und CSR bei jeder Verlängerung verwendet, andernfalls wird ein neues Paar generiert.
ACHTUNG: Let's Encrypt befindet sich noch im Test"; +$lng['serversettings']['leenabled']['title'] = "Let's Encrypt verwenden"; +$lng['serversettings']['leenabled']['description'] = "Wenn dies aktiviert ist, können Kunden durch Froxlor automatisch generierte und verlängerbare Let's Encrypt SSL-Zertifikate für Domains mit SSL IP/port nutzen."; $lng['domains']['ssl_redirect_temporarilydisabled'] = "
Die SSL-Umleitung ist, während ein neues Let's Encrypt - Zertifikat erstellt wird, temporär deaktiviert. Die Umleitung wird nach der Zertifikatserstellung wieder aktiviert."; // Added for Termination-date