2017-06-16 23:38:46 +03:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
if ! [[ "$0" =~ "./gencerts.sh" ]]; then
|
2018-04-09 20:59:52 +03:00
|
|
|
echo "must be run from 'fixtures'"
|
|
|
|
exit 255
|
2017-06-16 23:38:46 +03:00
|
|
|
fi
|
|
|
|
|
|
|
|
if ! which cfssl; then
|
2018-04-09 20:59:52 +03:00
|
|
|
echo "cfssl is not installed"
|
|
|
|
exit 255
|
2017-06-16 23:38:46 +03:00
|
|
|
fi
|
|
|
|
|
|
|
|
cfssl gencert --initca=true ./ca-csr.json | cfssljson --bare ./ca
|
|
|
|
mv ca.pem ca.crt
|
2018-04-09 20:59:52 +03:00
|
|
|
if which openssl >/dev/null; then
|
|
|
|
openssl x509 -in ca.crt -noout -text
|
|
|
|
fi
|
2017-06-16 23:38:46 +03:00
|
|
|
|
2017-07-21 01:13:22 +03:00
|
|
|
# generate DNS: localhost, IP: 127.0.0.1, CN: example.com certificates
|
2017-06-16 23:38:46 +03:00
|
|
|
cfssl gencert \
|
2018-04-09 20:59:52 +03:00
|
|
|
--ca ./ca.crt \
|
|
|
|
--ca-key ./ca-key.pem \
|
|
|
|
--config ./gencert.json \
|
|
|
|
./server-ca-csr.json | cfssljson --bare ./server
|
2017-06-16 23:38:46 +03:00
|
|
|
mv server.pem server.crt
|
|
|
|
mv server-key.pem server.key.insecure
|
|
|
|
|
2018-06-22 19:21:40 +03:00
|
|
|
# generate DNS: localhost, IP: 127.0.0.1, CN: example.com certificates (ECDSA)
|
|
|
|
cfssl gencert \
|
|
|
|
--ca ./ca.crt \
|
|
|
|
--ca-key ./ca-key.pem \
|
|
|
|
--config ./gencert.json \
|
|
|
|
./server-ca-csr-ecdsa.json | cfssljson --bare ./server-ecdsa
|
|
|
|
mv server-ecdsa.pem server-ecdsa.crt
|
|
|
|
mv server-ecdsa-key.pem server-ecdsa.key.insecure
|
|
|
|
|
2018-04-13 21:58:36 +03:00
|
|
|
# generate IP: 127.0.0.1, CN: example.com certificates
|
|
|
|
cfssl gencert \
|
|
|
|
--ca ./ca.crt \
|
|
|
|
--ca-key ./ca-key.pem \
|
|
|
|
--config ./gencert.json \
|
|
|
|
./server-ca-csr-ip.json | cfssljson --bare ./server-ip
|
|
|
|
mv server-ip.pem server-ip.crt
|
|
|
|
mv server-ip-key.pem server-ip.key.insecure
|
|
|
|
|
2017-09-29 11:18:12 +03:00
|
|
|
# generate DNS: localhost, IP: 127.0.0.1, CN: example2.com certificates
|
|
|
|
cfssl gencert \
|
2018-04-09 20:59:52 +03:00
|
|
|
--ca ./ca.crt \
|
|
|
|
--ca-key ./ca-key.pem \
|
|
|
|
--config ./gencert.json \
|
|
|
|
./server-ca-csr2.json | cfssljson --bare ./server2
|
2017-09-29 11:18:12 +03:00
|
|
|
mv server2.pem server2.crt
|
|
|
|
mv server2-key.pem server2.key.insecure
|
|
|
|
|
2019-01-10 17:21:20 +03:00
|
|
|
# generate DNS: localhost, IP: 127.0.0.1, CN: "" certificates
|
|
|
|
cfssl gencert \
|
|
|
|
--ca ./ca.crt \
|
|
|
|
--ca-key ./ca-key.pem \
|
|
|
|
--config ./gencert.json \
|
|
|
|
./server-ca-csr3.json | cfssljson --bare ./server3
|
|
|
|
mv server3.pem server3.crt
|
|
|
|
mv server3-key.pem server3.key.insecure
|
|
|
|
|
2017-07-21 01:13:22 +03:00
|
|
|
# generate revoked certificates and crl
|
2017-06-16 23:38:46 +03:00
|
|
|
cfssl gencert --ca ./ca.crt \
|
2018-04-09 20:59:52 +03:00
|
|
|
--ca-key ./ca-key.pem \
|
|
|
|
--config ./gencert.json \
|
|
|
|
./server-ca-csr.json 2>revoked.stderr | cfssljson --bare ./server-revoked
|
2017-06-16 23:38:46 +03:00
|
|
|
mv server-revoked.pem server-revoked.crt
|
|
|
|
mv server-revoked-key.pem server-revoked.key.insecure
|
|
|
|
grep serial revoked.stderr | awk ' { print $9 } ' >revoke.txt
|
2017-08-04 01:22:33 +03:00
|
|
|
cfssl gencrl revoke.txt ca.crt ca-key.pem | base64 --decode >revoke.crl
|
2017-06-16 23:38:46 +03:00
|
|
|
|
2017-07-21 01:13:22 +03:00
|
|
|
# generate wildcard certificates DNS: *.etcd.local
|
|
|
|
cfssl gencert \
|
2018-04-09 20:59:52 +03:00
|
|
|
--ca ./ca.crt \
|
|
|
|
--ca-key ./ca-key.pem \
|
|
|
|
--config ./gencert.json \
|
|
|
|
./server-ca-csr-wildcard.json | cfssljson --bare ./server-wildcard
|
2017-07-21 01:13:22 +03:00
|
|
|
mv server-wildcard.pem server-wildcard.crt
|
|
|
|
mv server-wildcard-key.pem server-wildcard.key.insecure
|
|
|
|
|
|
|
|
|
2017-06-16 23:38:46 +03:00
|
|
|
rm -f *.csr *.pem *.stderr *.txt
|