enhance information on updater regarding acme-challenge (if lets encrypt is enabled and applicable)

Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann
2023-01-18 11:47:55 +01:00
parent c56bc651b9
commit 1e013d9e9a
2 changed files with 21 additions and 11 deletions

View File

@@ -323,6 +323,7 @@ if (Froxlor::isDatabaseVersion('202212060')) {
$system_letsencryptchallengepath_upd = isset($_POST['system_letsencryptchallengepath_upd']) ? $_POST['system_letsencryptchallengepath_upd'] : $acmesh_challenge_dir; $system_letsencryptchallengepath_upd = isset($_POST['system_letsencryptchallengepath_upd']) ? $_POST['system_letsencryptchallengepath_upd'] : $acmesh_challenge_dir;
if ($acmesh_challenge_dir != $system_letsencryptchallengepath_upd) { if ($acmesh_challenge_dir != $system_letsencryptchallengepath_upd) {
Settings::Set('system.letsencryptchallengepath', $system_letsencryptchallengepath_upd); Settings::Set('system.letsencryptchallengepath', $system_letsencryptchallengepath_upd);
if ((int) Settings::Get('system.leenabled') == 1) {
// create JSON string for --apply // create JSON string for --apply
$dist = Settings::Get('system.distribution'); $dist = Settings::Get('system.distribution');
$webserver = Settings::Get('system.webserver'); $webserver = Settings::Get('system.webserver');
@@ -333,7 +334,15 @@ if (Froxlor::isDatabaseVersion('202212060')) {
} }
} }
$apply_json = '{"http":"' . $webserver . '","dns":"x","smtp":"x","mail":"x","ftp":"x","distro":"' . $dist . '","system":[]}'; $apply_json = '{"http":"' . $webserver . '","dns":"x","smtp":"x","mail":"x","ftp":"x","distro":"' . $dist . '","system":[]}';
Update::lastStepStatus(1, 'manual commands needed', 'Please reconfigure webserver service using <pre>bin/froxlor-cli froxlor:config-services --apply=' . $apply_json . '</pre><br> or adjust the path manually in <pre>' . Settings::Get('system.letsencryptacmeconf') . '</pre>'); Update::lastStepStatus(1, 'manual commands needed',
'Please reconfigure webserver service using <pre>bin/froxlor-cli froxlor:config-services --apply=' . $apply_json . '</pre>' .
'<br>or adjust the path manually in <pre>' . Settings::Get('system.letsencryptacmeconf') . '</pre>' .
'<br><br>In case you already have certificates issued, run the following command to validate and correct the webroot used for renewal:<br>' .
'<pre>bin/froxlor-cli froxlor:validate-acme-webroot</pre><br>'
);
} else {
Update::lastStepStatus(0);
}
} else { } else {
Update::lastStepStatus(0); Update::lastStepStatus(0);
} }

View File

@@ -76,7 +76,7 @@ if (Update::versionInUpdate($current_version, '2.0.0-beta1')) {
if (Update::versionInUpdate($current_db_version, '202301120')) { if (Update::versionInUpdate($current_db_version, '202301120')) {
$acmesh_challenge_dir = rtrim(FileDir::makeCorrectDir(Settings::Get('system.letsencryptchallengepath')), "/"); $acmesh_challenge_dir = rtrim(FileDir::makeCorrectDir(Settings::Get('system.letsencryptchallengepath')), "/");
$recommended = rtrim(FileDir::makeCorrectDir(Froxlor::getInstallDir()), "/"); $recommended = rtrim(FileDir::makeCorrectDir(Froxlor::getInstallDir()), "/");
if ($acmesh_challenge_dir != $recommended) { if ((int) Settings::Get('system.leenabled') == 1 && $acmesh_challenge_dir != $recommended) {
$has_preconfig = true; $has_preconfig = true;
$description = 'ACME challenge docroot from settings differs from the current installation directory.'; $description = 'ACME challenge docroot from settings differs from the current installation directory.';
$question = '<strong>Validate Let\'s Encrypt challenge path (recommended value: ' . $recommended . ')&nbsp;'; $question = '<strong>Validate Let\'s Encrypt challenge path (recommended value: ' . $recommended . ')&nbsp;';
@@ -85,7 +85,8 @@ if (Update::versionInUpdate($current_db_version, '202301120')) {
'value' => $recommended, 'value' => $recommended,
'placeholder' => $acmesh_challenge_dir, 'placeholder' => $acmesh_challenge_dir,
'label' => $question, 'label' => $question,
'prior_infotext' => $description 'prior_infotext' => $description,
'mandatory' => true,
]; ];
} }
} }