#!/bin/sh umask 077 answers() { echo -- echo SomeState echo SomeCity echo SomeOrganization echo SomeOrganizationalUnit echo localhost.localdomain echo root@localhost.localdomain } if [ $# -eq 0 ] ; then echo >&2 "Usage: ${0##*/} filename [...]" exit 1 fi WORKDIR= exit_handler() { [ -z "$WORKDIR" ] || rm -rf "$WORKDIR" exit "$@" } trap 'exit_handler $?' EXIT trap 'exit 143' HUP INT QUIT PIPE TERM WORKDIR="$(mktemp -dt "${0##*/}.XXXXXXXXXX")" || exit PEM1="$WORKDIR/pem1" PEM2="$WORKDIR/pem2" for target; do answers | openssl req -newkey rsa:2048 -keyout "$PEM1" -nodes -x509 -days 365 -out "$PEM2" 2>/dev/null cat "$PEM1" > "$target" echo >> "$target" cat "$PEM2" >> "$target" rm -f "$PEM1" "$PEM2" done