/usr/sbin/astgenkey is in asterisk 1:1.8.10.1~dfsg-1ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65  | #!/bin/sh
#
# Usage: astgenkey [ -q ] [ -n ] [keyname]
#
DES3=-des3
if [ "$1" = "-q" ]; then
	QUIET='y'
	if [ "$2" = "-n" ]; then
		DES3=
		KEY=$3
	else
		KEY=$2
	fi
elif [ "$1" = "-n" ]; then
	DES3=
	if [ "$2" = "-q" ]; then
		QUIET='y'
		KEY=$3
	else
		KEY=$2
	fi
else
	KEY=$1
fi
if [ "$QUIET" != 'y' ]; then
	echo ""
	echo "This script generates an RSA private and public key pair"
	echo "in PEM format for use by Asterisk.  You will be asked to"
	echo "enter a passcode for your key multiple times.  Please"
	echo "enter the same code each time.  The resulting files will"
	echo "need to be moved to /var/lib/asterisk/keys if you want"
	echo "to use them, and any private keys (.key files) will"
	echo "need to be initialized at runtime either by running"
	echo "Asterisk with the '-i' option, or with the 'init keys'"
	echo "command once Asterisk is running."
	echo ""
	echo "Press ENTER to continue or ^C to cancel."
	read BLAH
fi
while [ "$KEY" = "" ]; do
	echo -n "Enter key name: "
	read KEY
done
rm -f ${KEY}.key ${KEY}.pub
echo "Generating SSL key '$KEY': "
oldumask="`umask`"
umask 0077
openssl genrsa -out ${KEY}.key ${DES3} 1024
[ "$(id -u)" = 0 ] && chown asterisk: ${KEY}.key
umask $oldumask
openssl rsa -in ${KEY}.key -pubout -out ${KEY}.pub
if [ -f "${KEY}.key" ] && [ -f "${KEY}.pub" ]; then
	if [ "$QUIET" != 'y' ]; then
		echo "Key creation successful."
		echo "Public key:  ${KEY}.pub"
		echo "Private key: ${KEY}.key"
	fi
else
	echo "Unknown error creating keys."
fi
 |