Select Git revision
requirements.txt
This project manages its dependencies using pip.
Learn more
Makefile 3.09 KiB
.PHONY: test clean
.testcerts:
mkdir -p .testcerts
.testcerts/serial: .testcerts
echo 1000 > .testcerts/serial
.testcerts/root.key: .testcerts
openssl genrsa -out .testcerts/root.key 4096
.testcerts/root.crt: .testcerts/root.key
openssl req -new -x509 -days 7 -key .testcerts/root.key -nodes -out .testcerts/root.crt -subj /C=US/ST=State/L=City/O=RootCA/OU=Unit/CN=localhost/emailAddress=none@nowhere.com
.testcerts/intermediate1.key: .testcerts
openssl genrsa -out .testcerts/intermediate1.key 4096
.testcerts/intermediate1.csr: .testcerts/intermediate1.key
openssl req -new -key .testcerts/intermediate1.key -out .testcerts/intermediate1.csr -subj /C=US/ST=State/L=City/O=FirstIntermediate/OU=Unit/CN=localhost/emailAddress=none@nowhere.com
.testcerts/intermediate1.crt: .testcerts/intermediate1.csr .testcerts/root.key .testcerts/root.crt .testcerts/serial
openssl x509 -req -days 7 -in .testcerts/intermediate1.csr -out .testcerts/intermediate1.crt -CAkey .testcerts/root.key -CA .testcerts/root.crt -CAserial .testcerts/serial
.testcerts/intermediate2.key: .testcerts
openssl genrsa -out .testcerts/intermediate2.key 4096
.testcerts/intermediate2.csr: .testcerts/intermediate2.key
openssl req -new -key .testcerts/intermediate2.key -out .testcerts/intermediate2.csr -subj /C=US/ST=State/L=City/O=SecondIntermediate/OU=Unit/CN=localhost/emailAddress=none@nowhere.com
.testcerts/intermediate2.crt: .testcerts/intermediate2.csr .testcerts/intermediate1.key .testcerts/serial .testcerts/intermediate1.crt
openssl x509 -req -days 7 -in .testcerts/intermediate2.csr -out .testcerts/intermediate2.crt -CAkey .testcerts/intermediate1.key -CA .testcerts/intermediate1.crt -CAserial .testcerts/serial
.testcerts/server.key: .testcerts
openssl genrsa -out .testcerts/server.key 4096
.testcerts/server.csr: .testcerts/server.key
openssl req -new -key .testcerts/server.key -out .testcerts/server.csr -subj /C=US/ST=State/L=City/O=Server/OU=Unit/CN=localhost/emailAddress=none@nowhere.com
.testcerts/server.crt: .testcerts/intermediate2.key .testcerts/server.csr .testcerts/serial .testcerts/intermediate2.crt
openssl x509 -req -days 7 -in .testcerts/server.csr -out .testcerts/server.crt -CAkey .testcerts/intermediate2.key -CA .testcerts/intermediate2.crt -CAserial .testcerts/serial
.testcerts/intermediates.crt: .testcerts/intermediate1.crt .testcerts/intermediate2.crt
cat .testcerts/intermediate1.crt .testcerts/intermediate2.crt > .testcerts/intermediates.crt
.testcerts/bundle.crt: .testcerts/intermediates.crt .testcerts/server.crt
./bundle_certs .testcerts/* > .testcerts/bundle.crt
test: .testcerts/bundle.crt .testcerts/root.crt .testcerts/server.key
openssl s_server -cert .testcerts/bundle.crt -key .testcerts/server.key -quiet -www -no_dhe & echo "$$!" > .server.pid
test "$$(curl --fail --cacert .testcerts/root.crt --write-out '%{ssl_verify_result}' --silent --output /dev/null https://localhost:4433)" = "0"
if [ -f .server.pid ] && [ -d "/proc/$$(cat .server.pid)" ]; then kill "$$(cat .server.pid)"; fi
rm -f .server.pid
clean:
- kill "$$(cat .server.pid)"
git clean -fdx
test_source:
/bin/sh -c '. ./bundle_certs'