Makefile (1258B)
1 SERVERNAME=$(shell hostname) 2 SERVERPORT=3002 3 4 default: certificates 5 certificates: certs/ca.crt certs/server.crt certs/client.crt 6 7 private/ca.key: 8 mkdir -p private 9 openssl genrsa -out private/ca.key 4096 10 11 certs/ca.crt: private/ca.key 12 mkdir -p certs 13 openssl req -addext basicConstraints=critical,CA:TRUE,pathlen:0 --x509 -new -nodes -key private/ca.key -sha256 -days 3650 -out certs/ca.crt 14 15 certs/%.csr: 16 mkdir -p certs 17 openssl req -newkey rsa:2048 -addext "subjectAltName = DNS:$*.lan,DNS:$*,DNS:$*.telent.net" -nodes -keyout private/$*.key --out $@ 18 19 20 certs/%.crt: certs/%.csr private/ca.key 21 openssl x509 -req -in $< -days 365 -CA certs/ca.crt -CAkey private/ca.key -CAcreateserial -copy_extensions copyall -out $@ 22 23 run: certificates example-secrets.enc.yaml 24 cargo run -- --ca-certificate certs/ca.crt --certificate certs/server.crt --key private/server.key --port $(SERVERPORT) example-secrets.enc.yaml 25 26 ping: 27 curl --connect-to ::127.0.0.1:3002 --cert certs/client.crt --key private/client.key --cacert certs/ca.crt -v https://${SERVERNAME}:$(SERVERPORT) 28 29 private/age.key: 30 age-keygen -o $@ 31 32 example-secrets.enc.yaml: example-secrets.yaml private/age.key 33 sops encrypt \ 34 --age $$(age-keygen -y < private/age.key) \ 35 $< > $$$$ && mv $$$$ $@