Subversion Repositories configs

Rev

Rev 4 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 - 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
#
34 - 8
#	$Id: de56a19f2f8b0b764c076cd825d8375f9c7e0c85 $
4 - 9
#
10
######################################################################
11
 
12
DH_KEY_SIZE	= 1024
13
 
14
#
15
#  Set the passwords
16
#
17
PASSWORD_SERVER	= `grep output_password server.cnf | sed 's/.*=//;s/^ *//'`
18
PASSWORD_CA	= `grep output_password ca.cnf | sed 's/.*=//;s/^ *//'`
19
PASSWORD_CLIENT	= `grep output_password client.cnf | sed 's/.*=//;s/^ *//'`
20
 
21
USER_NAME	= `grep emailAddress client.cnf | grep '@' | sed 's/.*=//;s/^ *//'`
22
CA_DEFAULT_DAYS = `grep default_days ca.cnf | sed 's/.*=//;s/^ *//'`
23
 
24
######################################################################
25
#
26
#  Make the necessary files, but not client certificates.
27
#
28
######################################################################
29
.PHONY: all
30
all: index.txt serial dh random server ca
31
 
32
.PHONY: client
33
client: client.pem
34
 
35
.PHONY: ca
36
ca: ca.der
37
 
38
.PHONY: server
39
server: server.pem server.vrfy
40
 
41
######################################################################
42
#
43
#  Diffie-Hellman parameters
44
#
45
######################################################################
46
dh:
47
	openssl dhparam -out dh $(DH_KEY_SIZE)
48
 
49
######################################################################
50
#
51
#  Create a new self-signed CA certificate
52
#
53
######################################################################
54
ca.key ca.pem: ca.cnf
34 - 55
	@[ -f index.txt ] || $(MAKE) index.txt
56
	@[ -f serial ] || $(MAKE) serial
4 - 57
	openssl req -new -x509 -keyout ca.key -out ca.pem \
58
		-days $(CA_DEFAULT_DAYS) -config ./ca.cnf
59
 
60
ca.der: ca.pem
61
	openssl x509 -inform PEM -outform DER -in ca.pem -out ca.der
62
 
63
######################################################################
64
#
65
#  Create a new server certificate, signed by the above CA.
66
#
67
######################################################################
68
server.csr server.key: server.cnf
69
	openssl req -new  -out server.csr -keyout server.key -config ./server.cnf
70
 
71
server.crt: server.csr ca.key ca.pem
72
	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
73
 
74
server.p12: server.crt
75
	openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12  -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
76
 
77
server.pem: server.p12
78
	openssl pkcs12 -in server.p12 -out server.pem -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
79
 
80
.PHONY: server.vrfy
81
server.vrfy: ca.pem
82
	openssl verify -CAfile ca.pem server.pem
83
 
84
######################################################################
85
#
34 - 86
#  Create a new client certificate, signed by the the above CA
4 - 87
#
88
######################################################################
89
client.csr client.key: client.cnf
90
	openssl req -new  -out client.csr -keyout client.key -config ./client.cnf
91
 
92
client.crt: client.csr ca.pem ca.key
93
	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
94
 
95
client.p12: client.crt
96
	openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12  -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
97
 
98
client.pem: client.p12
99
	openssl pkcs12 -in client.p12 -out client.pem -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
100
	cp client.pem $(USER_NAME).pem
101
 
102
.PHONY: client.vrfy
34 - 103
client.vrfy: ca.pem client.pem
4 - 104
	c_rehash .
105
	openssl verify -CApath . client.pem
106
 
107
######################################################################
108
#
109
#  Miscellaneous rules.
110
#
111
######################################################################
112
index.txt:
113
	@touch index.txt
114
 
115
serial:
116
	@echo '01' > serial
117
 
118
random:
119
	@if [ -c /dev/urandom ] ; then \
120
		dd if=/dev/urandom of=./random count=10 >/dev/null 2>&1; \
121
	else \
122
		date > ./random; \
123
	fi
124
 
125
print:
126
	openssl x509 -text -in server.crt
127
 
128
printca:
129
	openssl x509 -text -in ca.pem
130
 
131
clean:
132
	@rm -f *~ *old client.csr client.key client.crt client.p12 client.pem
133
 
134
#
135
#	Make a target that people won't run too often.
136
#
137
destroycerts:
138
	rm -f *~ dh *.csr *.crt *.p12 *.der *.pem *.key index.txt* \
139
			serial* random *\.0 *\.1