Remove redundant file from freeradius-abfab list.
[freeradius.git] / raddb / certs / Makefile
1 ######################################################################
2 #
3 #       Make file to be installed in /etc/raddb/certs to enable
4 #       the easy creation of certificates.
5 #
6 #       See the README file in this directory for more information.
7 #
8 #       $Id$
9 #
10 ######################################################################
11
12 DH_KEY_SIZE     = 2048
13
14 #
15 #  Set the passwords
16 #
17 -include passwords.mk
18
19 ######################################################################
20 #
21 #  Make the necessary files, but not client certificates.
22 #
23 ######################################################################
24 .PHONY: all
25 all: index.txt serial dh server ca client
26
27 .PHONY: client
28 client: client.pem
29
30 .PHONY: ca
31 ca: ca.der
32
33 .PHONY: server
34 server: server.pem server.vrfy
35
36 passwords.mk: server.cnf ca.cnf client.cnf
37         @echo "PASSWORD_SERVER  = '$(shell grep output_password server.cnf | sed 's/.*=//;s/^ *//')'"           > $@
38         @echo "PASSWORD_CA      = '$(shell grep output_password ca.cnf | sed 's/.*=//;s/^ *//')'"               >> $@
39         @echo "PASSWORD_CLIENT  = '$(shell grep output_password client.cnf | sed 's/.*=//;s/^ *//')'"           >> $@
40         @echo "USER_NAME        = '$(shell grep emailAddress client.cnf | grep '@' | sed 's/.*=//;s/^ *//')'"   >> $@
41         @echo "CA_DEFAULT_DAYS  = '$(shell grep default_days ca.cnf | sed 's/.*=//;s/^ *//')'"                  >> $@
42
43 ######################################################################
44 #
45 #  Diffie-Hellman parameters
46 #
47 ######################################################################
48 dh:
49         openssl gendh -out dh -2 $(DH_KEY_SIZE)
50
51 ######################################################################
52 #
53 #  Create a new self-signed CA certificate
54 #
55 ######################################################################
56 ca.key ca.pem: ca.cnf
57         @[ -f index.txt ] || $(MAKE) index.txt
58         @[ -f serial ] || $(MAKE) serial
59         openssl req -new -x509 -keyout ca.key -out ca.pem \
60                 -days $(CA_DEFAULT_DAYS) -config ./ca.cnf
61
62 ca.der: ca.pem
63         openssl x509 -inform PEM -outform DER -in ca.pem -out ca.der
64
65 ######################################################################
66 #
67 #  Create a new server certificate, signed by the above CA.
68 #
69 ######################################################################
70 server.csr server.key: server.cnf
71         openssl req -new  -out server.csr -keyout server.key -config ./server.cnf
72
73 server.crt: server.csr ca.key ca.pem
74         openssl ca -batch -keyfile ca.key -cert ca.pem -in server.csr  -key $(PASSWORD_CA) -out server.crt -extensions xpserver_ext -extfile xpextensions -config ./server.cnf
75
76 server.p12: server.crt
77         openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12  -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
78
79 server.pem: server.p12
80         openssl pkcs12 -in server.p12 -out server.pem -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
81
82 .PHONY: server.vrfy
83 server.vrfy: ca.pem
84         @openssl verify -CAfile ca.pem server.pem
85
86 ######################################################################
87 #
88 #  Create a new client certificate, signed by the the above server
89 #  certificate.
90 #
91 ######################################################################
92 client.csr client.key: client.cnf
93         openssl req -new  -out client.csr -keyout client.key -config ./client.cnf
94
95 client.crt: client.csr ca.pem ca.key
96         openssl ca -batch -keyfile ca.key -cert ca.pem -in client.csr  -key $(PASSWORD_CA) -out client.crt -extensions xpclient_ext -extfile xpextensions -config ./client.cnf
97
98 client.p12: client.crt
99         openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12  -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
100
101 client.pem: client.p12
102         openssl pkcs12 -in client.p12 -out client.pem -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
103         cp client.pem $(USER_NAME).pem
104
105 .PHONY: client.vrfy
106 client.vrfy: ca.pem client.pem
107         c_rehash .
108         openssl verify -CApath . client.pem
109
110 ######################################################################
111 #
112 #  Miscellaneous rules.
113 #
114 ######################################################################
115 index.txt:
116         @touch index.txt
117
118 serial:
119         @echo '01' > serial
120
121 print:
122         openssl x509 -text -in server.crt
123
124 printca:
125         openssl x509 -text -in ca.pem
126
127 clean:
128         @rm -f *~ *old client.csr client.key client.crt client.p12 client.pem
129
130 #
131 #       Make a target that people won't run too often.
132 #
133 destroycerts:
134         rm -f *~ dh *.csr *.crt *.p12 *.der *.pem *.key index.txt* \
135                         serial*  *\.0 *\.1