|
2 | 2 |
|
3 | 3 | set -e |
4 | 4 |
|
5 | | -if [ -z "$1" ] || [ -z "$2" ] ; then |
| 5 | +if [ -z "$1" ] || [ -z "$2" ]; then |
6 | 6 | echo "$0 <cert dir> <chain length>" |
7 | 7 | exit 1 |
8 | 8 | fi |
9 | 9 |
|
10 | 10 | CERTDIR=$1 |
11 | 11 | CHAINLEN=$2 |
12 | 12 |
|
13 | | -mkdir -p $CERTDIR || true |
| 13 | +mkdir -p "$CERTDIR" || true |
14 | 14 |
|
15 | 15 | # Generate Root CA and certificate |
16 | | -openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 \ |
17 | | - -keyout $CERTDIR/ca_0.key -out $CERTDIR/cert_0.pem \ |
| 16 | +openssl ecparam -name prime256v1 -genkey -out "$CERTDIR"/ca_0.key |
| 17 | +openssl req -x509 -sha256 -nodes -days 10 -key "$CERTDIR"/ca_0.key \ |
| 18 | + -out "$CERTDIR"/cert_0.pem \ |
18 | 19 | -subj "/O=interop runner Root Certificate Authority/" \ |
19 | 20 | -config cert_config.txt \ |
20 | 21 | -extensions v3_ca \ |
21 | 22 | 2> /dev/null |
22 | 23 |
|
23 | | -for i in $(seq 1 $CHAINLEN); do |
| 24 | +for i in $(seq 1 "$CHAINLEN"); do |
24 | 25 | # Generate a CSR |
25 | 26 | SUBJ="interop runner intermediate $i" |
26 | | - if [[ $i == $CHAINLEN ]]; then |
| 27 | + if [[ $i == "$CHAINLEN" ]]; then |
27 | 28 | SUBJ="interop runner leaf" |
28 | 29 | fi |
29 | | - openssl req -out $CERTDIR/cert.csr -new -newkey rsa:2048 -nodes -keyout $CERTDIR/ca_$i.key \ |
| 30 | + |
| 31 | + openssl ecparam -name prime256v1 -genkey -out "$CERTDIR"/ca_"$i".key |
| 32 | + openssl req -out "$CERTDIR"/cert.csr -new -key "$CERTDIR"/ca_"$i".key -nodes \ |
30 | 33 | -subj "/O=$SUBJ/" \ |
31 | 34 | 2> /dev/null |
32 | 35 |
|
33 | 36 | # Sign the certificate |
34 | | - j=$(($i-1)) |
35 | | - if [[ $i < $CHAINLEN ]]; then |
36 | | - openssl x509 -req -sha256 -days 365 -in $CERTDIR/cert.csr -out $CERTDIR/cert_$i.pem \ |
37 | | - -CA $CERTDIR/cert_$j.pem -CAkey $CERTDIR/ca_$j.key -CAcreateserial \ |
| 37 | + j=$((i-1)) |
| 38 | + if [[ $i < "$CHAINLEN" ]]; then |
| 39 | + openssl x509 -req -sha256 -days 10 -in "$CERTDIR"/cert.csr -out "$CERTDIR"/cert_"$i".pem \ |
| 40 | + -CA "$CERTDIR"/cert_"$j".pem -CAkey "$CERTDIR"/ca_"$j".key -CAcreateserial \ |
38 | 41 | -extfile cert_config.txt \ |
39 | 42 | -extensions v3_ca \ |
40 | 43 | 2> /dev/null |
41 | 44 | else |
42 | | - openssl x509 -req -sha256 -days 365 -in $CERTDIR/cert.csr -out $CERTDIR/cert_$i.pem \ |
43 | | - -CA $CERTDIR/cert_$j.pem -CAkey $CERTDIR/ca_$j.key -CAcreateserial \ |
| 45 | + openssl x509 -req -sha256 -days 10 -in "$CERTDIR"/cert.csr -out "$CERTDIR"/cert_"$i".pem \ |
| 46 | + -CA "$CERTDIR"/cert_"$j".pem -CAkey "$CERTDIR"/ca_"$j".key -CAcreateserial \ |
44 | 47 | -extfile <(printf "subjectAltName=DNS:server,DNS:server4,DNS:server6,DNS:server46") \ |
45 | 48 | 2> /dev/null |
46 | 49 | fi |
47 | 50 | done |
48 | 51 |
|
49 | | -mv $CERTDIR/cert_0.pem $CERTDIR/ca.pem |
50 | | -cp $CERTDIR/ca_$CHAINLEN.key $CERTDIR/priv.key |
| 52 | +mv "$CERTDIR"/cert_0.pem "$CERTDIR"/ca.pem |
| 53 | +cp "$CERTDIR"/ca_"$CHAINLEN".key "$CERTDIR"/priv.key |
51 | 54 |
|
52 | 55 | # combine certificates |
53 | | -for i in $(seq $CHAINLEN -1 1); do |
54 | | - cat $CERTDIR/cert_$i.pem >> $CERTDIR/cert.pem |
55 | | - rm $CERTDIR/cert_$i.pem $CERTDIR/ca_$i.key |
| 56 | +for i in $(seq "$CHAINLEN" -1 1); do |
| 57 | + cat "$CERTDIR"/cert_"$i".pem >> "$CERTDIR"/cert.pem |
| 58 | + rm "$CERTDIR"/cert_"$i".pem "$CERTDIR"/ca_"$i".key |
56 | 59 | done |
57 | | -rm -f $CERTDIR/*.srl $CERTDIR/ca_0.key $CERTDIR/cert.csr |
| 60 | +rm -f "$CERTDIR"/*.srl "$CERTDIR"/ca_0.key "$CERTDIR"/cert.csr |
0 commit comments