Add ability to configure SSL enforcement options in UI

This commit is contained in:
Ilia Ross
2025-07-06 20:24:06 +03:00
parent 6b75672534
commit 11de78ce51
5 changed files with 16 additions and 7 deletions

View File

@ -10,7 +10,8 @@ require './usermin-lib.pl';
&get_usermin_miniserv_config(\%miniserv);
$sslcurr = $miniserv{'ssl'};
$miniserv{'ssl'} = $in{'ssl'};
$miniserv{'ssl_hsts'} = ($in{'ssl'} && $in{'ssl_hsts'}) ? 1 : 0;
$miniserv{'ssl_enforce'} = int($in{'ssl_enforce'});
$miniserv{'ssl_hsts'} = $miniserv{'ssl_enforce'} == 2 ? 1 : 0;
&webmin::validate_key_cert($in{'key'}, $in{'cert_def'} ? undef : $in{'cert'});
$miniserv{'keyfile'} = $in{'key'};
$miniserv{'certfile'} = $in{'cert_def'} ? undef : $in{'cert'};

View File

@ -23,8 +23,11 @@ print &ui_table_start($text{'ssl_header'}, undef, 2);
print &ui_table_row($text{'ssl_on'},
&ui_yesno_radio("ssl", $miniserv{'ssl'}));
print ui_table_row($text{'ssl_hsts'},
ui_yesno_radio("ssl_hsts", $miniserv{'ssl_hsts'}));
print ui_table_row($text{'ssl_enforce'},
ui_radio("ssl_enforce", $miniserv{'ssl_enforce'} // 1,
[ [ 2, $text{'ssl_hsts'} ],
[ 1, $text{'yes'} ],
[ 0, $text{'no'} ] ]));
print &ui_table_row($text{'ssl_key'},
&ui_textbox("key", $miniserv{'keyfile'}, 40)." ".

View File

@ -10,7 +10,8 @@ require './webmin-lib.pl';
&get_miniserv_config(\%miniserv);
$sslcurr = $miniserv{'ssl'};
$miniserv{'ssl'} = $in{'ssl'};
$miniserv{'ssl_hsts'} = ($in{'ssl'} && $in{'ssl_hsts'}) ? 1 : 0;
$miniserv{'ssl_enforce'} = int($in{'ssl_enforce'});
$miniserv{'ssl_hsts'} = $miniserv{'ssl_enforce'} == 2 ? 1 : 0;
&validate_key_cert($in{'key'}, $in{'cert_def'} ? undef : $in{'cert'});
$miniserv{'keyfile'} = $in{'key'};
$miniserv{'certfile'} = $in{'cert_def'} ? undef : $in{'cert'};

View File

@ -56,8 +56,11 @@ print ui_table_start($text{'ssl_header'}, undef, 2);
print ui_table_row($text{'ssl_on'},
ui_yesno_radio("ssl", $miniserv{'ssl'}));
print ui_table_row($text{'ssl_hsts'},
ui_yesno_radio("ssl_hsts", $miniserv{'ssl_hsts'}));
print ui_table_row($text{'ssl_enforce'},
ui_radio("ssl_enforce", $miniserv{'ssl_enforce'} // 1,
[ [ 2, $text{'ssl_hsts'} ],
[ 1, $text{'yes'} ],
[ 0, $text{'no'} ] ]));
print ui_table_row($text{'ssl_key'},
ui_textbox("key", $miniserv{'keyfile'}, 40)." ".

View File

@ -351,7 +351,8 @@ ssl_deny=SSL protocol versions to reject
ssl_compression=Allow compressed SSL connections?
ssl_honorcipherorder=Force use of server-defined cipher order?
ssl_extracas=Additional certificate files<br>for chained certificates
ssl_hsts=Enforce SSL with HSTS header
ssl_enforce=Enforce SSL
ssl_hsts=Yes, with HSTS header
ssl_redirect=Redirecting after protocol change ..
ssl_extracasdef=Same as global SSL settings
ssl_extracasnone=None for this IP address