Merge branch 'ocsp_staple_rollup'
[exim.git] / test / aux-fixed / exim-ca / genall
1 #!/bin/bash
2 #
3
4 echo Ensure time is set to 2012/11/01 12:34
5 echo use - date -u 110112342012
6 echo hit return when ready
7 read junk
8 for tld in com org net
9 do
10 clica -D example.$tld -p password -B 512 -I -N example.$tld -F -C http://crl.example.$tld/latest.crl -O http://oscp/example.$tld/
11 clica -D example.$tld -p password -s 101 -S server1.example.$tld
12 clica -D example.$tld -p password -s 102 -S revoked1.example.$tld
13 clica -D example.$tld -p password -s 103 -S expired1.example.$tld -m 1
14 clica -D example.$tld -p password -s 201 -S server2.example.$tld
15 clica -D example.$tld -p password -s 202 -S revoked2.example.$tld
16 clica -D example.$tld -p password -s 203 -S expired2.example.$tld -m 1
17 done
18
19 # and loop again
20 for tld in com org net
21 do
22 CADIR=example.$tld/CA
23 #give ourselves an OSCP key to work with
24 pk12util -o $CADIR/OCSP.p12 -n 'OCSP Signer' -d $CADIR -K password -W password
25 openssl pkcs12 -in $CADIR/OCSP.p12 -passin pass:password -passout pass:password -nodes -nocerts -out $CADIR/OCSP.key
26
27
28 # create some index files for the ocsp responder to work with
29 cat >$CADIR/index.valid.txt <<EOF
30 V 130110200751Z 65 unknown CN=server1.example.$tld
31 V 130110200751Z 66 unknown CN=revoked1.example.$tld
32 V 130110200751Z 67 unknown CN=expired1.example.$tld
33 V 130110200751Z c9 unknown CN=server2.example.$tld
34 V 130110200751Z ca unknown CN=revoked2.example.$tld
35 V 130110200751Z cb unknown CN=expired2.example.$tld
36 EOF
37 cat >$CADIR/index.revoked.txt <<EOF
38 R 130110200751Z 100201142709Z,superseded 65 unknown CN=server1.example.$tld
39 R 130110200751Z 100201142709Z,superseded 66 unknown CN=revoked1.example.$tld
40 R 130110200751Z 100201142709Z,superseded 67 unknown CN=expired1.example.$tld
41 R 130110200751Z 100201142709Z,superseded c9 unknown CN=server2.example.$tld
42 R 130110200751Z 100201142709Z,superseded ca unknown CN=revoked2.example.$tld
43 R 130110200751Z 100201142709Z,superseded cb unknown CN=expired2.example.$tld
44 EOF
45
46 # Now create all the ocsp requests and responses
47 OGENCOMMON="-rsigner $CADIR/OCSP.pem -rkey $CADIR/OCSP.key -CA $CADIR/Signer.pem -noverify"
48 for server in server1 revoked1 expired1 server2 revoked2 expired2
49 do
50 SPFX=example.$tld/$server.example.$tld/$server.example.$tld
51 openssl ocsp -issuer $CADIR/Signer.pem -cert $SPFX.pem -reqout $SPFX.ocsp.req
52 openssl ocsp -index $CADIR/index.valid.txt $OGENCOMMON -reqin $SPFX.ocsp.req -respout $SPFX.ocsp.good.resp
53 openssl ocsp -index $CADIR/index.valid.txt $OGENCOMMON -ndays 30 -reqin $SPFX.ocsp.req -respout $SPFX.ocsp.dated.resp
54 openssl ocsp -index $CADIR/index.revoked.txt $OGENCOMMON -reqin $SPFX.ocsp.req -respout $SPFX.ocsp.revoked.resp
55 done
56 done
57
58 # and loop again to generate unlocked keys and client cert bundles
59 for tld in com org net
60 do
61 for server in server1 revoked1 expired1 server2 revoked2 expired2 do
62 SDIR=example.$tld/$server.example.$tld
63 SPFX=$SDIR/$server.example.$tld
64 openssl rsa -in $SPFX.key -passin file:$SDIR/pwdfile -out $SPFX.unlocked.key
65 cat $SPFX.pem example.$tld/CA/Signer.pem >$SPFX.chain.pem
66 done
67 done
68
69 echo Please to reset date to now.
70 echo service ntpdate start
71 echo
72 echo Then hit return
73 read junk
74
75 # Create CRL files in .der and .pem
76 # empty versions, and ones with the revoked servers
77 for tld in com org net
78 do
79 CADIR=example.$tld/CA
80 CRLIN=$CADIR/crl.empty.in.txt
81 DATENOW=`date -u +%Y%m%d%H%M%SZ`
82 echo "update=$DATENOW " >$CRLIN
83 crlutil -G -d $CADIR -f $CADIR/pwdfile \
84 -n 'Signing Cert' -c $CRLIN -o $CADIR/crl.empty
85 openssl crl -in $CADIR/crl.empty -inform der -out $CADIR/crl.empty.pem
86 done
87 sleep 2
88 for tld in com org net
89 do
90 CADIR=example.$tld/CA
91 CRLIN=$CADIR/crl.v2.in.txt
92 DATENOW=`date -u +%Y%m%d%H%M%SZ`
93 echo "update=$DATENOW " >$CRLIN
94 echo "addcert 102 $DATENOW" >>$CRLIN
95 echo "addcert 202 $DATENOW" >>$CRLIN
96 crlutil -G -d $CADIR -f $CADIR/pwdfile \
97 -n 'Signing Cert' -c $CRLIN -o $CADIR/crl.v2
98 openssl crl -in $CADIR/crl.v2 -inform der -out $CADIR/crl.v2.pem
99 done
100
101 echo "CA, Certificate, CRL and OSCP Response generation complete"