Advertisement
alexs77

MacheEinCSR.sh

Dec 4th, 2015
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.56 KB | None | 0 0
  1. #! /bin/bash
  2.  
  3. default_bits="4096"
  4. default_digest="sha256"
  5.  
  6. aufruf() {
  7.     echo "Aufruf: $0 [-n CN] <-c C> <-s S> <-l L> <-o O> <-u OU> <-b Bits> <-d Digest> <-p Path>"
  8.     echo "Hierbei stehen CN, S, L, O und OU für die entsprechenden Felder im CSR Subject."
  9.     echo "-b steht für Bits im Zertifikat. Default: $default_bits"
  10.     echo "-d steht für den Signatur Digest im Zertifikat. Default: $default_digest"
  11.     echo "Nur \"-n CN\" ist zwingend."
  12.     echo ""
  13.     echo "Beispiel:"
  14.     echo "$0 -n example.everyware.ch"
  15.     echo "$0 -n beispiel.everyware.ch -c CH -s ZRH -l Zürich -o \"EveryWare AG\" -u \"Masters of de Welt :)\""
  16.     echo "$0 -n beispiel.everyware.ch -c CH -s ZRH -l Zürich -o \"EveryWare AG\" -u \"Masters of de Welt :)\" -b 2048"
  17.     echo "$0 -n beispiel.everyware.ch -c CH -s ZRH -l Zürich -o \"EveryWare AG\" -u \"Masters of de Welt :)\" -b 2048 -d sha1 -p /home/chefrocker/Documents/besterkunde/SSL/"
  18. }
  19.  
  20. subj=""; bits="$default_bits"; digest="$default_digest"
  21. while getopts ":c:s:l:o:u:n:b:d:p:C:S:L:O:U:N:B:D:P:" opt; do
  22.     case $opt in
  23.         c|C)
  24.             echo "Country: $OPTARG"; C="$OPTARG"; subj="$subj/C=$OPTARG" ;;
  25.         s|S)
  26.             echo "State: $OPTARG"; ST="$OPTARG"; subj="$subj/ST=$OPTARG" ;;
  27.         l|L)
  28.             echo "Locality/Ort: $OPTARG"; L="$OPTARG"; subj="$subj/L=$OPTARG" ;;
  29.         o|O)
  30.             echo "Organisation: $OPTARG"; O="$OPTARG"; subj="$subj/O=$OPTARG" ;;
  31.         u|U)
  32.             echo "Organisational Unit/Abteilung: $OPTARG"; OU="$OPTARG"; subj="$subj/OU=$OPTARG" ;;
  33.         n|N)
  34.             echo "Common Name/Domain: $OPTARG"; CN="$OPTARG"; subj="$subj/CN=$OPTARG" ;;
  35.         b|B)
  36.             echo "Bits: $OPTARG"; bits="$OPTARG" ;;
  37.         d|D)
  38.             echo "Digest: $OPTARG"; digest="$OPTARG" ;;
  39.     p|P)
  40.         echo "Path: $OPTARG"; path="$OPTARG" ;;
  41.         \?)
  42.             echo "Fehler: Ungültige Option: -$OPTARG!"; aufruf; exit 1 ;;
  43.         :)
  44.             echo "Fehler: Option -$OPTARG verlangt ein Argument!"; aufruf; exit 1 ;;
  45.     esac
  46. done
  47.  
  48. if [[ -z "$CN" ]]; then
  49.     printf "\nFehler: -n (CN) nicht angegben!\n\n"
  50.     aufruf
  51.     exit 1
  52. fi
  53.  
  54. if [[ -n "$path" ]] ; then
  55.     if [[ ${path:(-1)} != "/" ]]; then
  56.     path="${path}/"
  57.     fi
  58. fi
  59.  
  60. printf "\nSubject:\n%s\n\n" "$subj"
  61.  
  62. mkdir -p "${path}$CN"
  63. ts=$( date +%Y-%m-%d--%H-%M-%S )
  64. echo "Ausgefühter openssl Befehl:"
  65. set -x
  66. openssl req -new -newkey rsa:$bits -nodes -$digest -out "${path}$CN/$CN"--"$ts".csr -keyout "${path}$CN/$CN"--"$ts".key -subj "$subj"
  67. set +x
  68. chmod 400 "${path}$CN/$CN"--"$ts".key
  69.  
  70. exit $?
  71. # EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement