blob: 1b9136a935dcf98332c6240ed0acf2d317fa004b [file] [log] [blame]
Paul Bakkerb159ed22009-01-14 22:39:57 +00001#!/bin/sh
2rm -rf index newcerts/*.pem serial *.req *.key *.crt crl.prm
3
4touch index
5echo "01" > serial
6
Paul Bakkerb29e23c2009-02-09 21:06:41 +00007PASSWORD=PolarSSLTest
8
Paul Bakkerb159ed22009-01-14 22:39:57 +00009echo "Generating CA"
Paul Bakkerb29e23c2009-02-09 21:06:41 +000010cat sslconf.txt > sslconf_use.txt
11echo "CN=PolarSSL Test CA" >> sslconf_use.txt
12
13openssl req -config sslconf_use.txt -days 3653 -x509 -newkey rsa:2048 \
14 -set_serial 0 -text -keyout test-ca.key -out test-ca.crt \
15 -passout pass:$PASSWORD
Paul Bakkerb159ed22009-01-14 22:39:57 +000016
17echo "Generating rest"
18openssl genrsa -out server1.key 2048
19openssl genrsa -out server2.key 2048
20openssl genrsa -out client1.key 2048
21openssl genrsa -out client2.key 2048
Paul Bakker4593aea2009-02-09 22:32:35 +000022openssl genrsa -out cert_sha224.key 2048
23openssl genrsa -out cert_sha256.key 2048
24openssl genrsa -out cert_sha384.key 2048
25openssl genrsa -out cert_sha512.key 2048
Paul Bakkerb159ed22009-01-14 22:39:57 +000026
27echo "Generating requests"
Paul Bakker4593aea2009-02-09 22:32:35 +000028cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Server 1" >> sslconf_use.txt
Paul Bakkerb29e23c2009-02-09 21:06:41 +000029openssl req -config sslconf_use.txt -new -key server1.key -out server1.req
30
Paul Bakker92f880b2009-02-10 22:17:38 +000031cat sslconf.txt > sslconf_use.txt;echo "CN=localhost" >> sslconf_use.txt
Paul Bakkerb29e23c2009-02-09 21:06:41 +000032openssl req -config sslconf_use.txt -new -key server2.key -out server2.req
33
Paul Bakker4593aea2009-02-09 22:32:35 +000034cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Client 1" >> sslconf_use.txt
Paul Bakkerb29e23c2009-02-09 21:06:41 +000035openssl req -config sslconf_use.txt -new -key client1.key -out client1.req
36
Paul Bakker4593aea2009-02-09 22:32:35 +000037cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Client 2" >> sslconf_use.txt
Paul Bakkerb29e23c2009-02-09 21:06:41 +000038openssl req -config sslconf_use.txt -new -key client2.key -out client2.req
Paul Bakkerb159ed22009-01-14 22:39:57 +000039
Paul Bakker4593aea2009-02-09 22:32:35 +000040cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Cert SHA224" >> sslconf_use.txt
41openssl req -config sslconf_use.txt -new -key cert_sha224.key -out cert_sha224.req -sha224
42
43cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Cert SHA256" >> sslconf_use.txt
44openssl req -config sslconf_use.txt -new -key cert_sha256.key -out cert_sha256.req -sha256
45
46cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Cert SHA384" >> sslconf_use.txt
47openssl req -config sslconf_use.txt -new -key cert_sha384.key -out cert_sha384.req -sha384
48
49cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Cert SHA512" >> sslconf_use.txt
50openssl req -config sslconf_use.txt -new -key cert_sha512.key -out cert_sha512.req -sha512
51
Paul Bakkerb159ed22009-01-14 22:39:57 +000052echo "Signing requests"
Paul Bakkerb29e23c2009-02-09 21:06:41 +000053for i in server1 server2 client1 client2;
54do
55 openssl ca -config sslconf.txt -out $i.crt -passin pass:$PASSWORD \
56 -batch -in $i.req
57done
Paul Bakkerb159ed22009-01-14 22:39:57 +000058
Paul Bakker4593aea2009-02-09 22:32:35 +000059for i in 224 256 384 512;
60do
61 openssl ca -config sslconf.txt -out cert_sha$i.crt -passin pass:$PASSWORD \
62 -batch -in cert_sha$i.req -md sha$i
63done
64
Paul Bakkerb159ed22009-01-14 22:39:57 +000065echo "Revoking firsts"
Paul Bakkerb29e23c2009-02-09 21:06:41 +000066openssl ca -batch -config sslconf.txt -revoke server1.crt -passin pass:$PASSWORD
67openssl ca -batch -config sslconf.txt -revoke client1.crt -passin pass:$PASSWORD
68openssl ca -batch -config sslconf.txt -gencrl -out crl.pem -passin pass:$PASSWORD
Paul Bakkerb159ed22009-01-14 22:39:57 +000069
70echo "Verifying second"
71openssl x509 -in server2.crt -text -noout
72cat test-ca.crt crl.pem > ca_crl.pem
73openssl verify -CAfile ca_crl.pem -crl_check server2.crt
74rm ca_crl.pem
75
76echo "Generating PKCS12"
77openssl pkcs12 -export -in client2.crt -inkey client2.key \
Paul Bakkerb29e23c2009-02-09 21:06:41 +000078 -out client2.pfx -passout pass:$PASSWORD
Paul Bakkerb159ed22009-01-14 22:39:57 +000079
Paul Bakkerb29e23c2009-02-09 21:06:41 +000080rm *.old *.req sslconf_use.txt