123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #!/bin/bash
- KEY=$1
- CRT=$2
- IMM=$3
- if [ "`cat $KEY | grep ENCRYPTED`" ]; then
- echo >&2 "Key is password-protected"
- exit 1
- fi
- KEYMOD=`openssl rsa -noout -modulus -in $KEY`
- CRTMOD=`openssl x509 -noout -modulus -in $CRT`
- if [ "$KEYMOD" != "$CRTMOD" ]; then
- echo >&2 "Key doesn't match the certificate"
- exit 1
- fi
- if [ -n "$IMM" ]; then
- cat $CRT $IMM > bundle.crt
- if [ "`openssl verify bundle.crt`" == "$CRT: OK" ]; then
- echo "Done (bundle ok)"
- exit 0
- fi
- fi
- while true; do
- if [ "`openssl verify $CRT`" == "$CRT: OK" ]; then
- echo "Done"
- exit 0
- fi
- NEXT=`openssl x509 -noout -issuer_hash -in $CRT`
- if [ ! -f $NEXT ]; then
- echo >&2 "Could not generate trusted bundle"
- exit 1
- fi
- cat $CRT $NEXT > tmp.crt
- mv tmp.crt bundle.crt
- CRT="bundle.crt"
- done
|