diff -r c89cceafe654 -r d6923e55cfae debian/littlebird-tc-core.postinst --- a/debian/littlebird-tc-core.postinst Fri Sep 02 01:14:40 2011 +0200 +++ b/debian/littlebird-tc-core.postinst Fri Sep 02 10:03:28 2011 +0200 @@ -19,6 +19,8 @@ # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package +tmp=`mktemp` +trap "rm -f $tmp" EXIT INT QUIT TERM case "$1" in configure) @@ -71,10 +73,26 @@ # snakeoil certificate if test "$crt" && test "$key" && ! test -f "$crt" && ! test -f "$key"; then - mkdir -p `dirname $crt` - mkdir -p `dirname $key` - openssl req -new -x509 -days 10 -subj "/O=DEMO/CN=$servername" \ - -out "$crt" -keyout "$key" -nodes + mkdir -p `dirname $crt` `dirname $key` || true + + days=10 + + openssl req -new -x509 -days $days -subj "/O=DEMO/CN=$servername" \ + -out "$crt" -keyout "$key" -nodes 1>$tmp 2>&1 & + pid=$! + + db_subst littlebird-tc/web/create-cert cn "$servername" || true + db_subst littlebird-tc/web/create-cert days $days || true + db_input medium littlebird-tc/web/create-cert || true + db_go || true + + if ! wait $pid + then + rm -f "$crt" "$key" + cat $tmp >&2 + db_input critical littlebird-tc/web/cert-failed || true + db_go || true + fi fi # tweak the config file, but just the lines following a magical @@ -106,8 +124,9 @@ ) - invoke-rc.d apache2 reload 1>&1 - echo >&2 + db_stop || true + a2enmod ssl + invoke-rc.d apache2 reload >&2 ;;