blob: ab803378bd5bc6d082f18ecd02387fec24fe594a [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 Bakkere23166f2009-07-12 11:00:06 +000022openssl genrsa -out cert_digest.key 2048
Paul Bakkerb159ed22009-01-14 22:39:57 +000023
24echo "Generating requests"
Paul Bakker4593aea2009-02-09 22:32:35 +000025cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Server 1" >> sslconf_use.txt
Paul Bakkerb29e23c2009-02-09 21:06:41 +000026openssl req -config sslconf_use.txt -new -key server1.key -out server1.req
27
Paul Bakker92f880b2009-02-10 22:17:38 +000028cat sslconf.txt > sslconf_use.txt;echo "CN=localhost" >> sslconf_use.txt
Paul Bakkerb29e23c2009-02-09 21:06:41 +000029openssl req -config sslconf_use.txt -new -key server2.key -out server2.req
30
Paul Bakker4593aea2009-02-09 22:32:35 +000031cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Client 1" >> sslconf_use.txt
Paul Bakkerb29e23c2009-02-09 21:06:41 +000032openssl req -config sslconf_use.txt -new -key client1.key -out client1.req
33
Paul Bakker4593aea2009-02-09 22:32:35 +000034cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Client 2" >> sslconf_use.txt
Paul Bakkerb29e23c2009-02-09 21:06:41 +000035openssl req -config sslconf_use.txt -new -key client2.key -out client2.req
Paul Bakkerb159ed22009-01-14 22:39:57 +000036
Paul Bakkere23166f2009-07-12 11:00:06 +000037cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Cert MD2" >> sslconf_use.txt
38openssl req -config sslconf_use.txt -new -key cert_digest.key -out cert_md2.req -md2
39
40cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Cert MD4" >> sslconf_use.txt
41openssl req -config sslconf_use.txt -new -key cert_digest.key -out cert_md4.req -md4
42
43cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Cert MD5" >> sslconf_use.txt
44openssl req -config sslconf_use.txt -new -key cert_digest.key -out cert_md5.req -md5
45
46cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Cert SHA1" >> sslconf_use.txt
47openssl req -config sslconf_use.txt -new -key cert_digest.key -out cert_sha1.req -sha1
48
Paul Bakker4593aea2009-02-09 22:32:35 +000049cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Cert SHA224" >> sslconf_use.txt
Paul Bakkere23166f2009-07-12 11:00:06 +000050openssl req -config sslconf_use.txt -new -key cert_digest.key -out cert_sha224.req -sha224
Paul Bakker4593aea2009-02-09 22:32:35 +000051
52cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Cert SHA256" >> sslconf_use.txt
Paul Bakkere23166f2009-07-12 11:00:06 +000053openssl req -config sslconf_use.txt -new -key cert_digest.key -out cert_sha256.req -sha256
Paul Bakker4593aea2009-02-09 22:32:35 +000054
55cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Cert SHA384" >> sslconf_use.txt
Paul Bakkere23166f2009-07-12 11:00:06 +000056openssl req -config sslconf_use.txt -new -key cert_digest.key -out cert_sha384.req -sha384
Paul Bakker4593aea2009-02-09 22:32:35 +000057
58cat sslconf.txt > sslconf_use.txt;echo "CN=PolarSSL Cert SHA512" >> sslconf_use.txt
Paul Bakkere23166f2009-07-12 11:00:06 +000059openssl req -config sslconf_use.txt -new -key cert_digest.key -out cert_sha512.req -sha512
Paul Bakker4593aea2009-02-09 22:32:35 +000060
Paul Bakkerb159ed22009-01-14 22:39:57 +000061echo "Signing requests"
Paul Bakkerb29e23c2009-02-09 21:06:41 +000062for i in server1 server2 client1 client2;
63do
64 openssl ca -config sslconf.txt -out $i.crt -passin pass:$PASSWORD \
65 -batch -in $i.req
66done
Paul Bakkerb159ed22009-01-14 22:39:57 +000067
Paul Bakkere23166f2009-07-12 11:00:06 +000068for i in md2 md4 md5 sha1 sha224 sha256 sha384 sha512;
Paul Bakker4593aea2009-02-09 22:32:35 +000069do
Paul Bakkere23166f2009-07-12 11:00:06 +000070 openssl ca -config sslconf.txt -out cert_$i.crt -passin pass:$PASSWORD \
71 -batch -in cert_$i.req -md $i
Paul Bakker4593aea2009-02-09 22:32:35 +000072done
73
Paul Bakkerb159ed22009-01-14 22:39:57 +000074echo "Revoking firsts"
Paul Bakkerb29e23c2009-02-09 21:06:41 +000075openssl ca -batch -config sslconf.txt -revoke server1.crt -passin pass:$PASSWORD
76openssl ca -batch -config sslconf.txt -revoke client1.crt -passin pass:$PASSWORD
77openssl ca -batch -config sslconf.txt -gencrl -out crl.pem -passin pass:$PASSWORD
Paul Bakkerb159ed22009-01-14 22:39:57 +000078
79echo "Verifying second"
80openssl x509 -in server2.crt -text -noout
81cat test-ca.crt crl.pem > ca_crl.pem
82openssl verify -CAfile ca_crl.pem -crl_check server2.crt
83rm ca_crl.pem
84
85echo "Generating PKCS12"
86openssl pkcs12 -export -in client2.crt -inkey client2.key \
Paul Bakkerb29e23c2009-02-09 21:06:41 +000087 -out client2.pfx -passout pass:$PASSWORD
Paul Bakkerb159ed22009-01-14 22:39:57 +000088
Paul Bakkerb29e23c2009-02-09 21:06:41 +000089rm *.old *.req sslconf_use.txt