github.com/matm/etcd@v0.3.1-0.20140328024009-5b4a473f1453/fixtures/ca/generate_testing_certs.sh (about) 1 #!/bin/bash 2 # 3 # This script is used to generate all cert related files for etcd testing. 4 5 # location for temporary depot 6 depot=".depot" 7 # The passphrases for the keys are `asdf`. 8 passphrase="--passphrase asdf" 9 10 # etcd-ca could be found at github.com/coreos/etcd-ca 11 if [ $# -eq 0 ]; then 12 # try to find it through $GOPATH 13 IFS=':' read -a paths <<< "${GOPATH}" 14 for path in ${paths[@]}; do 15 if [ -f "${path}/bin/etcd-ca" ]; then 16 ca="${path}/bin/etcd-ca --depot-path $depot" 17 break 18 fi 19 done 20 if [ "$ca" == "" ]; then echo "Failed finding etcd-ca binary"; exit 1; fi 21 else 22 # treat the first argument as the path to etcd-ca binary 23 ca="$1 --depot-path $depot" 24 fi 25 26 rm -rf $depot 2>/dev/null 27 # create ca, which is assumed to be the broken one 28 $ca init $passphrase 29 # export out and rename files 30 $ca export | tar xvf - 31 mv ca.crt broken_ca.crt 32 mv ca.key broken_ca.key 33 34 # create certificate 35 $ca new-cert $passphrase --ip 127.0.0.1 server 36 $ca sign $passphrase server 37 # export out and rename files 38 $ca export --insecure $passphrase server | tar xvf - 39 mv server.crt broken_server.crt 40 mv server.key.insecure broken_server.key.insecure 41 42 rm -rf $depot 2>/dev/null 43 # create ca 44 $ca init $passphrase 45 $ca export | tar xvf - 46 47 # create certificate for server 48 $ca new-cert $passphrase --ip 127.0.0.1 server 49 $ca sign $passphrase server 50 $ca export --insecure $passphrase server | tar xvf - 51 $ca chain server > server-chain.pem 52 53 # create certificate for server2 54 $ca new-cert $passphrase --ip 127.0.0.1 server2 55 $ca sign $passphrase server2 56 $ca export --insecure $passphrase server2 | tar xvf - 57 58 rm -rf $depot 2>/dev/null