Skip to content
Snippets Groups Projects
astgenkey 1.37 KiB
Newer Older
  • Learn to ignore specific revisions
  • Mark Spencer's avatar
    Mark Spencer committed
    #!/bin/sh
    #
    
    # Usage: astgenkey [ -q ] [ -n ] [keyname]
    
    Mark Spencer's avatar
    Mark Spencer committed
    #
    
    Mark Spencer's avatar
    Mark Spencer committed
    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
    
    Mark Spencer's avatar
    Mark Spencer committed
    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': "
    
    openssl genrsa -out ${KEY}.key ${DES3} 1024
    
    Mark Spencer's avatar
    Mark Spencer committed
    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