| 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 |