diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-03-15 10:32:10 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-03-15 10:32:10 +0000 |
commit | 83cdd1623c833eba28f7b42336872d4131beea87 (patch) | |
tree | 1e87c305d4d997006039739d4231c674b6f9ba12 /package/network/services/uhttpd/files/uhttpd.init | |
parent | d8d9282372f1d3253bdf6df14cf643a710f3db5c (diff) | |
download | master-31e0f0ae-83cdd1623c833eba28f7b42336872d4131beea87.tar.gz master-31e0f0ae-83cdd1623c833eba28f7b42336872d4131beea87.tar.bz2 master-31e0f0ae-83cdd1623c833eba28f7b42336872d4131beea87.zip |
uhttpd: make generating SSL keys more reliable against interrupted boots
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 44772
Diffstat (limited to 'package/network/services/uhttpd/files/uhttpd.init')
-rwxr-xr-x | package/network/services/uhttpd/files/uhttpd.init | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/package/network/services/uhttpd/files/uhttpd.init b/package/network/services/uhttpd/files/uhttpd.init index 59f7d80e77..c493aafe42 100755 --- a/package/network/services/uhttpd/files/uhttpd.init +++ b/package/network/services/uhttpd/files/uhttpd.init @@ -45,8 +45,11 @@ generate_keys() { [ -x "$PX5G_BIN" ] && { $PX5G_BIN selfsigned -der \ - -days ${days:-730} -newkey rsa:${bits:-1024} -keyout "$UHTTPD_KEY" -out "$UHTTPD_CERT" \ + -days ${days:-730} -newkey rsa:${bits:-1024} -keyout "${UHTTPD_KEY}.new" -out "${UHTTPD_CERT}.new" \ -subj /C="${country:-DE}"/ST="${state:-Saxony}"/L="${location:-Leipzig}"/CN="${commonname:-OpenWrt}" + sync + mv "${UHTTPD_KEY}.new" "${UHTTPD_KEY}" + mv "${UHTTPD_CERT}.new" "${UHTTPD_CERT}" } } @@ -111,7 +114,7 @@ start_instance() config_get UHTTPD_CERT "$cfg" cert /etc/uhttpd.crt [ -f /lib/libustream-ssl.so ] && [ -n "$https" ] && { - [ -f "$UHTTPD_CERT" -a -f "$UHTTPD_KEY" ] || { + [ -s "$UHTTPD_CERT" -a -s "$UHTTPD_KEY" ] || { config_foreach generate_keys cert } |