| 
									
										
										
										
											2001-12-25 23:27:38 +00:00
										 |  |  | #!/bin/sh | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2004-09-15 04:19:58 +00:00
										 |  |  | # Usage: astgenkey [ -q ] [ -n ] [keyname] | 
					
						
							| 
									
										
										
										
											2001-12-25 23:27:38 +00:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2004-09-15 04:19:58 +00:00
										 |  |  | DES3=-des3 | 
					
						
							| 
									
										
										
										
											2001-12-25 23:27:38 +00:00
										 |  |  | if [ "$1" = "-q" ]; then | 
					
						
							|  |  |  | 	QUIET='y' | 
					
						
							| 
									
										
										
										
											2004-09-15 04:19:58 +00:00
										 |  |  | 	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 | 
					
						
							| 
									
										
										
										
											2001-12-25 23:27:38 +00:00
										 |  |  | 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" | 
					
						
							| 
									
										
										
										
											2014-03-05 12:06:48 +00:00
										 |  |  | 	echo "Asterisk with the '-i' option, or with the 'keys init'" | 
					
						
							| 
									
										
										
										
											2001-12-25 23:27:38 +00:00
										 |  |  | 	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': " | 
					
						
							| 
									
										
										
										
											2004-09-15 04:19:58 +00:00
										 |  |  | openssl genrsa -out ${KEY}.key ${DES3} 1024 | 
					
						
							| 
									
										
										
										
											2001-12-25 23:27:38 +00:00
										 |  |  | 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 |