| #!/bin/sh |
| # |
| # redo the hashes for the certificates in your cert path or the ones passed |
| # on the command line. |
| # |
| |
| if [ "$SSLEAY"x = "x" -o ! -x "$SSLEAY" ]; then |
| SSLEAY='ssleay' |
| export SSLEAY |
| fi |
| DIR=/usr/local/ssl |
| PATH=$DIR/bin:$PATH |
| |
| SSL_DIR=$DIR/certs |
| |
| if [ "$*" = "" ]; then |
| CERTS=${*:-${SSL_CERT_DIR:-$SSL_DIR}} |
| else |
| CERTS=$* |
| fi |
| |
| IFS=': ' |
| for i in $CERTS |
| do |
| ( |
| IFS=' ' |
| if [ -d $i -a -w $i ]; then |
| cd $i |
| echo "Doing $i" |
| for i in *.pem |
| do |
| if [ $i != '*.pem' ]; then |
| h=`$SSLEAY x509 -hash -noout -in $i` |
| if [ "x$h" = "x" ]; then |
| echo $i does not contain a certificate |
| else |
| if [ -f $h.0 ]; then |
| /bin/rm -f $h.0 |
| fi |
| echo "$i => $h.0" |
| ln -s $i $h.0 |
| fi |
| fi |
| done |
| fi |
| ) |
| done |