aboutsummaryrefslogtreecommitdiff
path: root/scripts/generate-tls-ca.sh
blob: 9fe82b677479e0f32ab8ac9b88a0440ac7a555ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env sh

set -e

OUTDIR="$(dirname ${0})"

printf 'Output directory: %s\n' "${OUTDIR}"

printf 'ca\ncert_signing_key' > template
certtool --generate-privkey > "${OUTDIR}/ca-key.pem"
certtool --generate-self-signed \
	--template template \
	--load-privkey "${OUTDIR}/ca-key.pem" \
	--outfile "${OUTDIR}/ca-cert.pem"
rm template

printf 'expiration_days = 365' > template
certtool --generate-crl --load-ca-privkey "${OUTDIR}/ca-key.pem" \
	--template template \
	--load-ca-certificate "${OUTDIR}/ca-cert.pem" \
	--outfile "${OUTDIR}/crl.pem"
rm template

printf 'encryption_key\nsigning_key' > template
certtool --generate-privkey > "${OUTDIR}/server-key.pem"
certtool --generate-certificate \
	--template template \
	--load-privkey "${OUTDIR}/server-key.pem" \
	--load-ca-certificate "${OUTDIR}/ca-cert.pem" \
	--load-ca-privkey "${OUTDIR}/ca-key.pem" \
	--outfile "${OUTDIR}/server-cert.pem"
rm template