summaryrefslogtreecommitdiff
path: root/openssl/mksslcert.sh
blob: 4b10ef90a6a6ab2a6d2f5b244e775ab2218e52a3 (plain)
    1 #!/bin/sh
    2 #
    3 # mksslcert
    4 #
    5 # creates self-signed openssl certificates based on
    6 # the local hostname or the given one
    7 # Fallback to localhost if not set.
    8 #
    9 # Juergen Daubert, jue at crux dot nu
   10 
   11 
   12 print_help() {
   13 	echo "usage: ${0##*/} <key> <cert> [hostname]"
   14 	echo "  key       full path to openssl private key"
   15 	echo "  cert      full path to openssl certificate"
   16 	echo "  hostname  host name of certificate"
   17 }
   18 
   19 main() {
   20 	if [ ! "$1" -o ! "$2" ]; then
   21 		print_help
   22 		exit 1
   23 	fi
   24 	
   25 	KEY=$1
   26 	CRT=$2
   27 	FQDN=$(hostname -f) || FQDN=localhost
   28 	if [ ! -z "$3" ]; then
   29 		FQDN="$3"
   30 	fi
   31 	INFO=".\n.\n.\n.\n.\n$FQDN\nroot@$FQDN"
   32 	OPTS="req -new -nodes -x509 -days 365 -newkey rsa:2048"
   33 	
   34 	printf "$INFO\n" | openssl $OPTS -out $CRT -keyout $KEY 2> /dev/null
   35 	
   36 	if [ $? -ne 0 ]; then
   37 		echo "Error: creating of certificate failed"
   38 		exit 1
   39 	else
   40 		echo "SSL certificate $CRT with key $KEY for host $FQDN created"
   41 		chmod 0600 $CRT $KEY 
   42 	fi
   43 }
   44 
   45 main "$@"
   46 
   47 # End of file

Generated by cgit