Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/bash
- default_bits="4096"
- default_digest="sha256"
- aufruf() {
- echo "Aufruf: $0 [-n CN] <-c C> <-s S> <-l L> <-o O> <-u OU> <-b Bits> <-d Digest> <-p Path>"
- echo "Hierbei stehen CN, S, L, O und OU für die entsprechenden Felder im CSR Subject."
- echo "-b steht für Bits im Zertifikat. Default: $default_bits"
- echo "-d steht für den Signatur Digest im Zertifikat. Default: $default_digest"
- echo "Nur \"-n CN\" ist zwingend."
- echo ""
- echo "Beispiel:"
- echo "$0 -n example.everyware.ch"
- echo "$0 -n beispiel.everyware.ch -c CH -s ZRH -l Zürich -o \"EveryWare AG\" -u \"Masters of de Welt :)\""
- echo "$0 -n beispiel.everyware.ch -c CH -s ZRH -l Zürich -o \"EveryWare AG\" -u \"Masters of de Welt :)\" -b 2048"
- 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/"
- }
- subj=""; bits="$default_bits"; digest="$default_digest"
- while getopts ":c:s:l:o:u:n:b:d:p:C:S:L:O:U:N:B:D:P:" opt; do
- case $opt in
- c|C)
- echo "Country: $OPTARG"; C="$OPTARG"; subj="$subj/C=$OPTARG" ;;
- s|S)
- echo "State: $OPTARG"; ST="$OPTARG"; subj="$subj/ST=$OPTARG" ;;
- l|L)
- echo "Locality/Ort: $OPTARG"; L="$OPTARG"; subj="$subj/L=$OPTARG" ;;
- o|O)
- echo "Organisation: $OPTARG"; O="$OPTARG"; subj="$subj/O=$OPTARG" ;;
- u|U)
- echo "Organisational Unit/Abteilung: $OPTARG"; OU="$OPTARG"; subj="$subj/OU=$OPTARG" ;;
- n|N)
- echo "Common Name/Domain: $OPTARG"; CN="$OPTARG"; subj="$subj/CN=$OPTARG" ;;
- b|B)
- echo "Bits: $OPTARG"; bits="$OPTARG" ;;
- d|D)
- echo "Digest: $OPTARG"; digest="$OPTARG" ;;
- p|P)
- echo "Path: $OPTARG"; path="$OPTARG" ;;
- \?)
- echo "Fehler: Ungültige Option: -$OPTARG!"; aufruf; exit 1 ;;
- :)
- echo "Fehler: Option -$OPTARG verlangt ein Argument!"; aufruf; exit 1 ;;
- esac
- done
- if [[ -z "$CN" ]]; then
- printf "\nFehler: -n (CN) nicht angegben!\n\n"
- aufruf
- exit 1
- fi
- if [[ -n "$path" ]] ; then
- if [[ ${path:(-1)} != "/" ]]; then
- path="${path}/"
- fi
- fi
- printf "\nSubject:\n%s\n\n" "$subj"
- mkdir -p "${path}$CN"
- ts=$( date +%Y-%m-%d--%H-%M-%S )
- echo "Ausgefühter openssl Befehl:"
- set -x
- openssl req -new -newkey rsa:$bits -nodes -$digest -out "${path}$CN/$CN"--"$ts".csr -keyout "${path}$CN/$CN"--"$ts".key -subj "$subj"
- set +x
- chmod 400 "${path}$CN/$CN"--"$ts".key
- exit $?
- # EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement