blob: 65cf9aa51d69976fcd55d25105caf9c0aef75595 [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
Paul Bakkera8cd2392012-02-11 16:09:32 +000064cat sslconf.txt > sslconf_use.txt;echo "CN=www.example.com" >> sslconf_use.txt
65echo "[ v3_req ]" >> sslconf_use.txt
Paul Bakker4d2c1242012-05-10 14:12:46 +000066echo "subjectAltName = \"DNS:example.com,DNS:example.net,DNS:*.example.org\"" >> sslconf_use.txt
Paul Bakkera8cd2392012-02-11 16:09:32 +000067openssl req -config sslconf_use.txt -new -key cert_digest.key -out cert_example_multi.req -reqexts "v3_req"
68
Paul Bakkerb159ed22009-01-14 22:39:57 +000069echo "Signing requests"
Paul Bakkerb29e23c2009-02-09 21:06:41 +000070for i in server1 server2 client1 client2;
71do
72 openssl ca -config sslconf.txt -out $i.crt -passin pass:$PASSWORD \
73 -batch -in $i.req
74done
Paul Bakkerb159ed22009-01-14 22:39:57 +000075
Paul Bakkere23166f2009-07-12 11:00:06 +000076for i in md2 md4 md5 sha1 sha224 sha256 sha384 sha512;
Paul Bakker4593aea2009-02-09 22:32:35 +000077do
Paul Bakkere23166f2009-07-12 11:00:06 +000078 openssl ca -config sslconf.txt -out cert_$i.crt -passin pass:$PASSWORD \
79 -batch -in cert_$i.req -md $i
Paul Bakker4593aea2009-02-09 22:32:35 +000080done
81
Paul Bakker57b12982012-02-11 17:38:38 +000082for i in example_wildcard example_multi;
Paul Bakkera8cd2392012-02-11 16:09:32 +000083do
84 openssl ca -config sslconf.txt -out cert_$i.crt -passin pass:$PASSWORD \
85 -batch -in cert_$i.req
86done
87
Paul Bakkerb159ed22009-01-14 22:39:57 +000088echo "Revoking firsts"
Paul Bakkerb29e23c2009-02-09 21:06:41 +000089openssl ca -batch -config sslconf.txt -revoke server1.crt -passin pass:$PASSWORD
90openssl ca -batch -config sslconf.txt -revoke client1.crt -passin pass:$PASSWORD
91openssl ca -batch -config sslconf.txt -gencrl -out crl.pem -passin pass:$PASSWORD
Paul Bakkerb159ed22009-01-14 22:39:57 +000092
Paul Bakker5d4a1932009-07-19 20:31:02 +000093for i in md2 md4 md5 sha1 sha224 sha256 sha384 sha512;
94do
95 openssl ca -batch -config sslconf.txt -gencrl -out crl_$i.pem -md $i -passin pass:$PASSWORD
96done
97
Paul Bakkerb159ed22009-01-14 22:39:57 +000098echo "Verifying second"
99openssl x509 -in server2.crt -text -noout
100cat test-ca.crt crl.pem > ca_crl.pem
101openssl verify -CAfile ca_crl.pem -crl_check server2.crt
102rm ca_crl.pem
103
104echo "Generating PKCS12"
105openssl pkcs12 -export -in client2.crt -inkey client2.key \
Paul Bakkerb29e23c2009-02-09 21:06:41 +0000106 -out client2.pfx -passout pass:$PASSWORD
Paul Bakkerb159ed22009-01-14 22:39:57 +0000107
Paul Bakker92101f22012-02-16 14:09:31 +0000108rm *.old sslconf_use.txt