44 lines
1.3 KiB
Bash
Executable File
44 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -eufx
|
|
|
|
if openssl version | grep "OpenSSL 1.0.2" >/dev/null; then
|
|
echo "OpenSSL 1.0.2 does not load the certificate; private key mismatch ???"
|
|
exit 77
|
|
fi
|
|
|
|
echo -en "SSL CONNECTION WORKING\n">test.html
|
|
|
|
function cleanup()
|
|
{
|
|
kill -term $SERVER || true
|
|
}
|
|
|
|
openssl ecparam -genkey -name prime256v1 -noout -out ca.key
|
|
|
|
echo -e "\n\n\n\n\n\n\n" | openssl req -new -x509 -batch -extensions v3_ca -key ca.key -out ca.crt
|
|
|
|
echo -e "\n\n\n\n\n\n\n\n\n" | openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
|
|
|
|
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
|
|
|
|
tpm2tss-genkey -a rsa client.tpm.key
|
|
|
|
echo -e "\n\n\n\n\n\n\n\n\n" | openssl req -new -key client.tpm.key -keyform engine -engine tpm2tss -out client.csr
|
|
|
|
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt
|
|
|
|
openssl s_server -cert server.crt -key server.key -accept 8443 -verify 1 -CAfile ca.crt -WWW &
|
|
SERVER=$!
|
|
|
|
sleep 1
|
|
|
|
kill -0 $!
|
|
|
|
trap "cleanup" EXIT
|
|
|
|
# We have to sleep, such that the pipe stays open until the command is finished.
|
|
(echo -e "GET /test.html HTTP/1.1\r\n\r\n" && sleep 1) | openssl s_client -connect 127.0.0.1:8443 -cert client.crt -key client.tpm.key -engine tpm2tss -keyform engine -CAfile ca.crt
|
|
|
|
echo "SUCCESS"
|