blob: 0c096528fbcc3da0ed0cd6a316719b75df1aff2f [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 Bakkera8cd2392012-02-11 16:09:32 +000061cat sslconf.txt > sslconf_use.txt;echo "CN=*.example.com" >> sslconf_use.txt
62openssl req -config sslconf_use.txt -new -key cert_digest.key -out cert_example_wildcard.req
63
64cat sslconf.txt > sslconf_use.txt;echo "CN=example.com" >> sslconf_use.txt
65openssl req -config sslconf_use.txt -new -key cert_digest.key -out cert_example.req
66
67cat sslconf.txt > sslconf_use.txt;echo "CN=www.example.com" >> sslconf_use.txt
68openssl req -config sslconf_use.txt -new -key cert_digest.key -out cert_example_www.req
69
70cat sslconf.txt > sslconf_use.txt;echo "CN=www.example.com" >> sslconf_use.txt
71echo "[ v3_req ]" >> sslconf_use.txt
72echo "subjectAltName = \"DNS:www.example.com,DNS:example.com,DNS:example.net\"" >> sslconf_use.txt
73openssl req -config sslconf_use.txt -new -key cert_digest.key -out cert_example_multi.req -reqexts "v3_req"
74
Paul Bakkerb159ed22009-01-14 22:39:57 +000075echo "Signing requests"
Paul Bakkerb29e23c2009-02-09 21:06:41 +000076for i in server1 server2 client1 client2;
77do
78 openssl ca -config sslconf.txt -out $i.crt -passin pass:$PASSWORD \
79 -batch -in $i.req
80done
Paul Bakkerb159ed22009-01-14 22:39:57 +000081
Paul Bakkere23166f2009-07-12 11:00:06 +000082for i in md2 md4 md5 sha1 sha224 sha256 sha384 sha512;
Paul Bakker4593aea2009-02-09 22:32:35 +000083do
Paul Bakkere23166f2009-07-12 11:00:06 +000084 openssl ca -config sslconf.txt -out cert_$i.crt -passin pass:$PASSWORD \
85 -batch -in cert_$i.req -md $i
Paul Bakker4593aea2009-02-09 22:32:35 +000086done
87
Paul Bakkera8cd2392012-02-11 16:09:32 +000088for i in example_wildcard example example_www example_multi;
89do
90 openssl ca -config sslconf.txt -out cert_$i.crt -passin pass:$PASSWORD \
91 -batch -in cert_$i.req
92done
93
Paul Bakkerb159ed22009-01-14 22:39:57 +000094echo "Revoking firsts"
Paul Bakkerb29e23c2009-02-09 21:06:41 +000095openssl ca -batch -config sslconf.txt -revoke server1.crt -passin pass:$PASSWORD
96openssl ca -batch -config sslconf.txt -revoke client1.crt -passin pass:$PASSWORD
97openssl ca -batch -config sslconf.txt -gencrl -out crl.pem -passin pass:$PASSWORD
Paul Bakkerb159ed22009-01-14 22:39:57 +000098
Paul Bakker5d4a1932009-07-19 20:31:02 +000099for i in md2 md4 md5 sha1 sha224 sha256 sha384 sha512;
100do
101 openssl ca -batch -config sslconf.txt -gencrl -out crl_$i.pem -md $i -passin pass:$PASSWORD
102done
103
Paul Bakkerb159ed22009-01-14 22:39:57 +0000104echo "Verifying second"
105openssl x509 -in server2.crt -text -noout
106cat test-ca.crt crl.pem > ca_crl.pem
107openssl verify -CAfile ca_crl.pem -crl_check server2.crt
108rm ca_crl.pem
109
110echo "Generating PKCS12"
111openssl pkcs12 -export -in client2.crt -inkey client2.key \
Paul Bakkerb29e23c2009-02-09 21:06:41 +0000112 -out client2.pfx -passout pass:$PASSWORD
Paul Bakkerb159ed22009-01-14 22:39:57 +0000113
Paul Bakkerb29e23c2009-02-09 21:06:41 +0000114rm *.old *.req sslconf_use.txt