mirror of https://github.com/hak5/openwrt.git
uhttpd: create self-signed certificates with unique subjects
Add a partially random O= item to the certificate subject in order to make the automatically generated certificates' subjects unique. Firefox has problems when several self-signed certificates with CA:true attribute and identical subjects have been seen (and stored) by the browser. Reference to upstream bugs: https://bugzilla.mozilla.org/show_bug.cgi?id=1147544 https://bugzilla.mozilla.org/show_bug.cgi?id=1056341 https://bugzilla.redhat.com/show_bug.cgi?id=1204670#c34 Certificates created by the OpenSSL one-liner fall into that category. Avoid identical certificate subjects by including a new 'O=' item with CommonName + a random part (8 chars). Example: /CN=LEDE/O=LEDEb986be0b/L=Unknown/ST=Somewhere/C=ZZ That ensures that the browser properly sees the accumulating certificates as separate items and does not spend time trying to form a trust chain from them. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>lede-17.01
parent
82132540a3
commit
9097dc5ad8
|
@ -46,12 +46,13 @@ generate_keys() {
|
||||||
|
|
||||||
# Prefer px5g for certificate generation (existence evaluated last)
|
# Prefer px5g for certificate generation (existence evaluated last)
|
||||||
local GENKEY_CMD=""
|
local GENKEY_CMD=""
|
||||||
|
local UNIQUEID=$(dd if=/dev/urandom bs=1 count=4 | hexdump -e '1/1 "%02x"')
|
||||||
[ -x "$OPENSSL_BIN" ] && GENKEY_CMD="$OPENSSL_BIN req -x509 -outform der -nodes"
|
[ -x "$OPENSSL_BIN" ] && GENKEY_CMD="$OPENSSL_BIN req -x509 -outform der -nodes"
|
||||||
[ -x "$PX5G_BIN" ] && GENKEY_CMD="$PX5G_BIN selfsigned -der"
|
[ -x "$PX5G_BIN" ] && GENKEY_CMD="$PX5G_BIN selfsigned -der"
|
||||||
[ -n "$GENKEY_CMD" ] && {
|
[ -n "$GENKEY_CMD" ] && {
|
||||||
$GENKEY_CMD \
|
$GENKEY_CMD \
|
||||||
-days ${days:-730} -newkey rsa:${bits:-2048} -keyout "${UHTTPD_KEY}.new" -out "${UHTTPD_CERT}.new" \
|
-days ${days:-730} -newkey rsa:${bits:-2048} -keyout "${UHTTPD_KEY}.new" -out "${UHTTPD_CERT}.new" \
|
||||||
-subj /C="${country:-DE}"/ST="${state:-Saxony}"/L="${location:-Leipzig}"/CN="${commonname:-Lede}"
|
-subj /C="${country:-DE}"/ST="${state:-Saxony}"/L="${location:-Leipzig}"/O="${commonname:-Lede}$UNIQUEID"/CN="${commonname:-Lede}"
|
||||||
sync
|
sync
|
||||||
mv "${UHTTPD_KEY}.new" "${UHTTPD_KEY}"
|
mv "${UHTTPD_KEY}.new" "${UHTTPD_KEY}"
|
||||||
mv "${UHTTPD_CERT}.new" "${UHTTPD_CERT}"
|
mv "${UHTTPD_CERT}.new" "${UHTTPD_CERT}"
|
||||||
|
|
Loading…
Reference in New Issue