1 all: agent1-cert.pem agent2-cert.pem agent3-cert.pem agent4-cert.pem
5 # Create Certificate Authority: ca1
6 # ('password' is used for the CA password.)
9 openssl req -new -x509 -config ca1.cnf -keyout ca1-key.pem -out ca1-cert.pem
12 # Create Certificate Authority: ca2
13 # ('password' is used for the CA password.)
16 openssl req -new -x509 -config ca2.cnf -keyout ca2-key.pem -out ca2-cert.pem
20 # agent1 is signed by ca1.
24 openssl genrsa -out agent1-key.pem
26 agent1-csr.pem: agent1.cnf agent1-key.pem
27 openssl req -new -config agent1.cnf -key agent1-key.pem -out agent1-csr.pem
29 agent1-cert.pem: agent1-csr.pem ca1-cert.pem ca1-key.pem
31 -passin "pass:password" \
38 agent1-verify: agent1-cert.pem ca1-cert.pem
39 openssl verify -CAfile ca1-cert.pem agent1-cert.pem
43 # agent2 has a self signed cert
45 # Generate new private key
47 openssl genrsa -out agent2-key.pem
49 # Create a Certificate Signing Request for the key
50 agent2-csr.pem: agent2-key.pem agent2.cnf
51 openssl req -new -config agent2.cnf -key agent2-key.pem -out agent2-csr.pem
53 # Create a Certificate for the agent.
54 agent2-cert.pem: agent2-csr.pem agent2-key.pem
57 -signkey agent2-key.pem \
60 agent2-verify: agent2-cert.pem
61 openssl verify -CAfile agent2-cert.pem agent2-cert.pem
64 # agent3 is signed by ca2.
68 openssl genrsa -out agent3-key.pem
70 agent3-csr.pem: agent3.cnf agent3-key.pem
71 openssl req -new -config agent3.cnf -key agent3-key.pem -out agent3-csr.pem
73 agent3-cert.pem: agent3-csr.pem ca2-cert.pem ca2-key.pem
75 -passin "pass:password" \
82 agent3-verify: agent3-cert.pem ca2-cert.pem
83 openssl verify -CAfile ca2-cert.pem agent3-cert.pem
87 # agent4 is signed by ca2 (client cert)
91 openssl genrsa -out agent4-key.pem
93 agent4-csr.pem: agent4.cnf agent4-key.pem
94 openssl req -new -config agent4.cnf -key agent4-key.pem -out agent4-csr.pem
96 agent4-cert.pem: agent4-csr.pem ca2-cert.pem ca2-key.pem
98 -passin "pass:password" \
103 -extfile agent4.cnf \
104 -extensions ext_key_usage \
107 agent4-verify: agent4-cert.pem ca2-cert.pem
108 openssl verify -CAfile ca2-cert.pem agent4-cert.pem
117 test: agent1-verify agent2-verify agent3-verify agent4-verify
120 .PHONY: all clean test agent1-verify agent2-verify agent3-verify agent4-verify