Bernd Wurst commited on 2017-02-18 18:05:36
Zeige 3 geänderte Dateien mit 52 Einfügungen und 3 Löschungen.
| ... | ... |
@@ -58,9 +58,11 @@ |
| 58 | 58 |
if (cert == '0') {
|
| 59 | 59 |
$('#cert').val('-1');
|
| 60 | 60 |
} |
| 61 |
- } else |
|
| 61 |
+ } else {
|
|
| 62 | 62 |
$('#hsts_block').hide();
|
| 63 | 63 |
} |
| 64 |
+ show_hsts_opts(); |
|
| 65 |
+ } |
|
| 64 | 66 |
|
| 65 | 67 |
function hsts_preset( event ) {
|
| 66 | 68 |
var seconds = $('#hsts_preset option:selected').val();
|
| ... | ... |
@@ -75,6 +77,34 @@ |
| 75 | 77 |
} |
| 76 | 78 |
} |
| 77 | 79 |
|
| 80 |
+ function show_hsts_opts( event ) {
|
|
| 81 |
+ var ssl = $('#ssl option:selected').val();
|
|
| 82 |
+ show_block = false; |
|
| 83 |
+ preload_enabled = false; |
|
| 84 |
+ if ( ssl == 'forward') {
|
|
| 85 |
+ if ($('#hsts').val() > 0) {
|
|
| 86 |
+ show_block = true; |
|
| 87 |
+ if ($('#hsts_subdomains').prop('checked')) {
|
|
| 88 |
+ preload_enabled = true; |
|
| 89 |
+ } |
|
| 90 |
+ } |
|
| 91 |
+ |
|
| 92 |
+ } |
|
| 93 |
+ if (show_block) {
|
|
| 94 |
+ $('#hsts_preload_options').show();
|
|
| 95 |
+ } else {
|
|
| 96 |
+ $('#hsts_preload_options').hide();
|
|
| 97 |
+ $('#hsts_subdomains').prop('checked', false);
|
|
| 98 |
+ $('#hsts_preload').prop('checked', false);
|
|
| 99 |
+ } |
|
| 100 |
+ if (preload_enabled) {
|
|
| 101 |
+ $('#hsts_preload').prop('disabled', false);
|
|
| 102 |
+ } else {
|
|
| 103 |
+ $('#hsts_preload').prop('disabled', true);
|
|
| 104 |
+ $('#hsts_preload').prop('checked', false);
|
|
| 105 |
+ } |
|
| 106 |
+ } |
|
| 107 |
+ |
|
| 78 | 108 |
|
| 79 | 109 |
$(function() {
|
| 80 | 110 |
|
| ... | ... |
@@ -93,6 +123,9 @@ $(function() {
|
| 93 | 123 |
$('#hsts_seconds').hide();
|
| 94 | 124 |
} |
| 95 | 125 |
$('#hsts_preset').change(hsts_preset);
|
| 126 |
+ $('#hsts_select').change(show_hsts_opts);
|
|
| 127 |
+ $('#hsts_subdomains').change(show_hsts_opts);
|
|
| 128 |
+ show_hsts_opts(); |
|
| 96 | 129 |
|
| 97 | 130 |
}); |
| 98 | 131 |
|
| ... | ... |
@@ -189,7 +189,9 @@ $form .= " |
| 189 | 189 |
".($vhost['ssl'] == 'http' ? "<option value=\"http\" selected=\"selected\">kein HTTPS anbieten</option>" : '')." |
| 190 | 190 |
".($vhost['ssl'] == 'https' ? "<option value=\"https\" selected=\"selected\">Konfiguration nur für HTTPS verwenden</option>" : '')." |
| 191 | 191 |
<option value=\"forward\" ".($vhost['ssl'] == 'forward' ? 'selected="selected"' : '')." >Ja, immer auf HTTPS umleiten</option> |
| 192 |
- </select> <span id=\"hsts_block\" style=\"padding-top: 0.2em;\"> <label for=\"hsts\"><a title=\"Mit HSTS können Sie festlegen, dass eine bestimmte Website niemals ohne Verschlüsselung aufgerufen werden soll. Zudem werden Zertifikate strenger geprüft.\" href=\"https://de.wikipedia.org/wiki/HTTP_Strict_Transport_Security\">HSTS</a>:</label> <span id=\"hsts_select\" style=\"display: none\">".html_select('hsts_preset', $hsts_preset_values, $hsts_preset_value)."</span> <span id=\"hsts_seconds\"><input type=\"text\" name=\"hsts\" id=\"hsts\" size=\"10\" style=\"text-align: right;\" value=\"{$hsts_value}\" /> Sekunden</span>
|
|
| 192 |
+ </select> <span id=\"hsts_block\" style=\"padding-top: 0.2em;\"> <label for=\"hsts\"><a title=\"Mit HSTS können Sie festlegen, dass eine bestimmte Website niemals ohne Verschlüsselung aufgerufen werden soll. Zudem werden Zertifikate strenger geprüft.\" href=\"https://de.wikipedia.org/wiki/HTTP_Strict_Transport_Security\">HSTS</a>:</label> <span id=\"hsts_select\" style=\"display: none\">".html_select('hsts_preset', $hsts_preset_values, $hsts_preset_value)."</span> <span id=\"hsts_seconds\"><input type=\"text\" name=\"hsts\" id=\"hsts\" size=\"10\" style=\"text-align: right;\" value=\"{$hsts_value}\" /> Sekunden</span><br />
|
|
| 193 |
+ <span id=\"hsts_preload_options\"><input type=\"checkbox\" id=\"hsts_subdomains\" name=\"hsts_subdomains\" value=\"1\" ".(strstr($vhost['options'], 'hsts_subdomains') ? 'checked="checked"' : '')."/> <label for=\"hsts_subdomains\">Einschließlich aller Subdomains</label><br /> |
|
| 194 |
+ <input type=\"checkbox\" id=\"hsts_preload\" name=\"hsts_preload\" value=\"1\" ".(strstr($vhost['options'], 'hsts_preload') ? 'checked="checked"' : '')."/> <label for=\"hsts_preload\">Diese Domain soll in die Preload-Liste aufgenommen werden (diese Option setzt den <em>preload</em>-Parameter)</label></span> |
|
| 193 | 195 |
</span> |
| 194 | 196 |
</div>"; |
| 195 | 197 |
|
| ... | ... |
@@ -151,12 +151,20 @@ if ($_GET['action'] == 'edit') |
| 151 | 151 |
} |
| 152 | 152 |
|
| 153 | 153 |
$hsts = NULL; |
| 154 |
+ $hsts_subdomains = false; |
|
| 155 |
+ $hsts_preload = false; |
|
| 154 | 156 |
if (isset($_POST['hsts'])) {
|
| 155 | 157 |
if (is_numeric($_POST['hsts']) && (int) $_POST['hsts'] > -2) {
|
| 156 | 158 |
$hsts = (int) $_POST['hsts']; |
| 157 | 159 |
} else {
|
| 158 | 160 |
system_failure('Es wurde ein ungültiger HSTS-Wert eingegeben. Dort sind nur Sekunden erlaubt.');
|
| 159 | 161 |
} |
| 162 |
+ if (isset($_POST['hsts_subdomains']) and $_POST['hsts_subdomains'] == 1) {
|
|
| 163 |
+ $hsts_subdomains = true; |
|
| 164 |
+ if (isset($_POST['hsts_preload']) and $_POST['hsts_preload'] == 1) {
|
|
| 165 |
+ $hsts_preload = true; |
|
| 166 |
+ } |
|
| 167 |
+ } |
|
| 160 | 168 |
} |
| 161 | 169 |
|
| 162 | 170 |
$cert = (isset($_POST['cert']) ? (int) $_POST['cert'] : NULL); |
| ... | ... |
@@ -208,13 +216,19 @@ if ($_GET['action'] == 'edit') |
| 208 | 216 |
$new_options = array(); |
| 209 | 217 |
foreach ($old_options AS $op) |
| 210 | 218 |
{
|
| 211 |
- if ($op != 'aliaswww') {
|
|
| 219 |
+ if ($op != 'aliaswww' && $op != 'hsts_subdomains' && $op != 'hsts_preload') {
|
|
| 212 | 220 |
array_push($new_options, $op); |
| 213 | 221 |
} |
| 214 | 222 |
} |
| 215 | 223 |
if ($aliaswww) {
|
| 216 | 224 |
array_push($new_options, 'aliaswww'); |
| 217 | 225 |
} |
| 226 |
+ if ($hsts_subdomains) {
|
|
| 227 |
+ array_push($new_options, 'hsts_subdomains'); |
|
| 228 |
+ } |
|
| 229 |
+ if ($hsts_preload) {
|
|
| 230 |
+ array_push($new_options, 'hsts_preload'); |
|
| 231 |
+ } |
|
| 218 | 232 |
$letsencrypt = ($cert == 0 ? false : ($cert == -1 || cert_is_letsencrypt($cert))); |
| 219 | 233 |
|
| 220 | 234 |
if ($letsencrypt) {
|
| 221 | 235 |