undercroft

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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 $$$$  $@