oops, revert unrelated changes
[openssl.git] / demos / certs / mkcerts.sh
1 #!/bin/sh
2
3 OPENSSL=../../apps/openssl
4 OPENSSL_CONF=../../apps/openssl.cnf
5 export OPENSSL_CONF
6
7 # Root CA: create certificate directly
8 CN="Test Root CA" $OPENSSL req -config ca.cnf -x509 -nodes \
9         -keyout root.pem -out root.pem -newkey rsa:2048 -days 3650
10 # Server certificate: create request first
11 CN="Test Server Cert" $OPENSSL req -config ca.cnf -nodes \
12         -keyout skey.pem -out req.pem -newkey rsa:1024
13 # Sign request: end entity extensions
14 $OPENSSL x509 -req -in req.pem -CA root.pem -days 3600 \
15         -extfile ca.cnf -extensions usr_cert -CAcreateserial -out server.pem
16 # Intermediate CA: request first
17 CN="Test Intermediate CA" $OPENSSL req -config ca.cnf -nodes \
18         -keyout intkey.pem -out intreq.pem -newkey rsa:2048
19 # Sign request: CA extensions
20 $OPENSSL x509 -req -in intreq.pem -CA root.pem -days 3600 \
21         -extfile ca.cnf -extensions v3_ca -CAcreateserial -out intca.pem
22 # Client certificate: request first
23 CN="Test Client Cert" $OPENSSL req -config ca.cnf -nodes \
24         -keyout ckey.pem -out creq.pem -newkey rsa:1024
25 # Sign using intermediate CA
26 $OPENSSL x509 -req -in creq.pem -CA intca.pem -CAkey intkey.pem -days 3600 \
27         -extfile ca.cnf -extensions usr_cert -CAcreateserial -out client.pem
28
29 # Example creating a PKCS#3 DH certificate. 
30
31 # First DH parameters
32
33 [ -f dhp.pem ] || $OPENSSL genpkey -genparam -algorithm DH -pkeyopt dh_paramgen_prime_len:1024 -out dhp.pem
34
35 # Now a DH private key
36 $OPENSSL genpkey -paramfile dhp.pem -out dhskey.pem
37 # Create DH public key file
38 $OPENSSL pkey -in dhskey.pem -pubout -out dhspub.pem
39 # Certificate request, key just reuses old one as it is ignored when the
40 # request is signed.
41 CN="Test Server DH Cert" $OPENSSL req -config ca.cnf -new \
42         -key skey.pem -out dhsreq.pem
43 # Sign request: end entity DH extensions
44 $OPENSSL x509 -req -in dhsreq.pem -CA root.pem -days 3600 \
45         -force_pubkey dhspub.pem \
46         -extfile ca.cnf -extensions dh_cert -CAcreateserial -out dhserver.pem
47
48 # DH client certificate
49
50 $OPENSSL genpkey -paramfile dhp.pem -out dhckey.pem
51 $OPENSSL pkey -in dhckey.pem -pubout -out dhcpub.pem
52 CN="Test Client DH Cert" $OPENSSL req -config ca.cnf -new \
53         -key skey.pem -out dhcreq.pem
54 $OPENSSL x509 -req -in dhcreq.pem -CA root.pem -days 3600 \
55         -force_pubkey dhcpub.pem \
56         -extfile ca.cnf -extensions dh_cert -CAcreateserial -out dhclient.pem