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 |