Skip to content

Commit 047f47f

Browse files
committed
WIP: TLS tests
Signed-off-by: Danny Kopping <danny@coder.com>
1 parent f727b7f commit 047f47f

File tree

15 files changed

+807
-66
lines changed

15 files changed

+807
-66
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
[ req ]
2+
distinguished_name = req_distinguished_name
3+
x509_extensions = v3_ca
4+
prompt = no
5+
6+
[ req_distinguished_name ]
7+
C = ZA
8+
ST = WC
9+
L = Cape Town
10+
O = Coder
11+
OU = Team Coconut
12+
CN = Coder CA
13+
14+
[ v3_ca ]
15+
basicConstraints = critical,CA:TRUE
16+
keyUsage = critical,keyCertSign,cRLSign
17+
subjectKeyIdentifier = hash
18+
authorityKeyIdentifier = keyid:always,issuer:always
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIESjCCAzKgAwIBAgIUceUne8C8ezg1leBzhm5M5QLjBc4wDQYJKoZIhvcNAQEL
3+
BQAwaDELMAkGA1UEBhMCWkExCzAJBgNVBAgMAldDMRIwEAYDVQQHDAlDYXBlIFRv
4+
d24xDjAMBgNVBAoMBUNvZGVyMRUwEwYDVQQLDAxUZWFtIENvY29udXQxETAPBgNV
5+
BAMMCENvZGVyIENBMB4XDTI0MDcxNTEzMzYwOFoXDTM0MDcxMzEzMzYwOFowaDEL
6+
MAkGA1UEBhMCWkExCzAJBgNVBAgMAldDMRIwEAYDVQQHDAlDYXBlIFRvd24xDjAM
7+
BgNVBAoMBUNvZGVyMRUwEwYDVQQLDAxUZWFtIENvY29udXQxETAPBgNVBAMMCENv
8+
ZGVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAijVhQfmImkQF
9+
kDiBqCdSAaG7dO7slAjJH0jYizYCwVzCKP72Z7DJ2b/ohcGBw1YWZ8dOm88uCpsS
10+
oWM5FvxIeaNeGpcFar+wEoR/o5p91DgwvpmkbNyu3uQaNRvIKoqGdTAu5GUNd+Ej
11+
MxvwfofgRetziA56sa6ovQV11hPbKxp0YbSJXMRN64sGCqx+VNqpk2A57JCdCjcB
12+
T1fc7LIqKc9uoqCaC0Hr2OaBCc8IxLwpwwOz5qCaOGmylXY3YE4lKNJkA1s/HXO/
13+
GAZ6aO0GqkO00fxIQwW13BexuaiDJfcAhUmJ8CjFt9qgKfnkP26jU8gfMxOkRkn2
14+
qG8sWy3z8wIDAQABo4HrMIHoMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
15+
AgEGMB0GA1UdDgQWBBSk2BGdRQZDMvzOfLQkUmkwzjrOFzCBpQYDVR0jBIGdMIGa
16+
gBSk2BGdRQZDMvzOfLQkUmkwzjrOF6FspGowaDELMAkGA1UEBhMCWkExCzAJBgNV
17+
BAgMAldDMRIwEAYDVQQHDAlDYXBlIFRvd24xDjAMBgNVBAoMBUNvZGVyMRUwEwYD
18+
VQQLDAxUZWFtIENvY29udXQxETAPBgNVBAMMCENvZGVyIENBghRx5Sd7wLx7ODWV
19+
4HOGbkzlAuMFzjANBgkqhkiG9w0BAQsFAAOCAQEAFJtks88lruyIIbFpzQ8M932a
20+
hNmkm3ZFM8qrjFWCEINmzeeQHV+rviu4Spd4Cltx+lf6+51V68jE730IGEzAu14o
21+
U2dmhRxn+w17H6/Qmnxlbz4Da2HvVgL9C4IoEbCTTGEa+hDg3cH6Mah1rfC0zAXH
22+
zxe/M2ahM+SOMDxmoUUf6M4tDVqu98FpELfsFe4MqTUbzQ32PyoP4ZOBpma1dl8Y
23+
fMm0rJE9/g/9Tkj8WfA4AwedCWUA4e7MLZikmntcein310uSy1sEpA+HVji+Gt68
24+
2+TJgIGOX1EHj44SqK5hVExQNzqqi1IIhR05imFaJ426DX82LtOA1bIg7HNCWA==
25+
-----END CERTIFICATE-----
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCKNWFB+YiaRAWQ
3+
OIGoJ1IBobt07uyUCMkfSNiLNgLBXMIo/vZnsMnZv+iFwYHDVhZnx06bzy4KmxKh
4+
YzkW/Eh5o14alwVqv7AShH+jmn3UODC+maRs3K7e5Bo1G8gqioZ1MC7kZQ134SMz
5+
G/B+h+BF63OIDnqxrqi9BXXWE9srGnRhtIlcxE3riwYKrH5U2qmTYDnskJ0KNwFP
6+
V9zssiopz26ioJoLQevY5oEJzwjEvCnDA7PmoJo4abKVdjdgTiUo0mQDWz8dc78Y
7+
Bnpo7QaqQ7TR/EhDBbXcF7G5qIMl9wCFSYnwKMW32qAp+eQ/bqNTyB8zE6RGSfao
8+
byxbLfPzAgMBAAECggEAMPlfYFiDDl8iNYvAbgyY45ki6vmq/X3rftl6WkImUcyD
9+
xLEsMWwU6sM1Kwh56fT8dYPLmCyfHQT8YhHd7gYxzGCWfQec1MneI4GuFRQumF/c
10+
7f1VpXnBwZvEqaMRl/mEUcxkIWypjBxMM9UnsD6Hu18GjmTLF2FTy78+lUBt/mSZ
11+
CptLNIQJ0vncdAlxg9PYxfXhrtWj8I2T7PCAmBM+wbcGzfWTKyo/JMKylnEe4NNg
12+
j4elBHhISSUACpZd2pU+iA2nTaaD1Rzlqang/FypIzwLye/Sz2a6spM9yL8H9UN5
13+
zdz+QIwNoSC4fhEAlDo7FMBr8ZdR97qadP78XH+3SQKBgQDC5mwvIEoLQSD7H9PT
14+
t+J59uq90Dcg7qRxM+jbrtmPmvSuAql2Mx7KO5kf45CO7mLA1oE7YG2ceXQb4hFO
15+
HCrIGYtK6iEyizvIOCmbwoPbYXBf2o6iSl1t7f4wQ4N35KjQptviW5CO3ThFI2H4
16+
Oco2zR1Bjtig/lPKPv4TlAA4ZwKBgQC1iTZzynr2UP6f2MIByNEzN86BAiHJBya0
17+
BCWrl93A66GRSjV/tNikSZ/Me/SU3h44WuiFVRMuDrYrCcrUgmXpVMSnAy6AiwXx
18+
ItMsQNJW3JryN7uki/swI0zLWj8B+FMf8nXa2FS545etjOj1w6scoKT4txmVT0C+
19+
61l4KNXglQKBgQCQRD3qOE12vTPrjyiePCwxOZuS+1ADWYJxpQoFqwyx5vKc562G
20+
p9pvuePjnfAATObedSldyUf5nlFa3mEO33yvd3EK9/mwzy1mTGRIPpiZyCuFWGNi
21+
MAeueo9ALIlhMune4NQ8XqjHh2rCiqlXM3fCTtwMDe++Y+Oj/jLWTSRImwKBgDTb
22+
UNmCGS9jAeB08ngmipMJKr1xa3jm9iPwGS/PNigX86EkJFOcyn97WGXnqZ0210G9
23+
Znp7/OuqKOx7G22o0heQMPoX+RBAamh9pVL7RMM51Hu2MpKEl4y6mn+TNUlTjpB8
24+
vkgMOQ8u71j+8E2uvUHGnII2feJ1gvqT+Cb+bNfJAoGAJNK6ufPA0lHJwuDlGlNu
25+
eKU0bP3tkz7nM20PS8R2djoNGN+D+pFFR71TB2gTN6YmqBcwP7TjPwNLKSg9xJvY
26+
ST1F2QnOyds/OgdFlabcNdmbNivT0rHX6qZs7vYXNVjt7rmIRY2TW3ifRLeCK0Ls
27+
5Anq4SkaoH/ctBnP3TYRnQI=
28+
-----END PRIVATE KEY-----
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0330C6D190E3FE649DAFCDA2F4D765E2D29328DE
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
#!/bin/bash
2+
3+
# Set filenames
4+
CA_KEY="ca.key"
5+
CA_CERT="ca.crt"
6+
SERVER_KEY="server.key"
7+
SERVER_CSR="server.csr"
8+
SERVER_CERT="server.crt"
9+
CA_CONF="ca.conf"
10+
SERVER_CONF="server.conf"
11+
V3_EXT_CONF="v3_ext.conf"
12+
13+
# Generate the CA key
14+
openssl genpkey -algorithm RSA -out $CA_KEY -pkeyopt rsa_keygen_bits:2048
15+
16+
# Create the CA configuration file
17+
cat > $CA_CONF <<EOL
18+
[ req ]
19+
distinguished_name = req_distinguished_name
20+
x509_extensions = v3_ca
21+
prompt = no
22+
23+
[ req_distinguished_name ]
24+
C = ZA
25+
ST = WC
26+
L = Cape Town
27+
O = Coder
28+
OU = Team Coconut
29+
CN = Coder CA
30+
31+
[ v3_ca ]
32+
basicConstraints = critical,CA:TRUE
33+
keyUsage = critical,keyCertSign,cRLSign
34+
subjectKeyIdentifier = hash
35+
authorityKeyIdentifier = keyid:always,issuer:always
36+
EOL
37+
38+
# Generate the CA certificate
39+
openssl req -new -x509 -key $CA_KEY -out $CA_CERT -days 3650 -config $CA_CONF -extensions v3_ca
40+
41+
# Generate the server key
42+
openssl genpkey -algorithm RSA -out $SERVER_KEY -pkeyopt rsa_keygen_bits:2048
43+
44+
# Create the server configuration file
45+
cat > $SERVER_CONF <<EOL
46+
[ req ]
47+
distinguished_name = req_distinguished_name
48+
req_extensions = v3_req
49+
prompt = no
50+
51+
[ req_distinguished_name ]
52+
C = ZA
53+
ST = WC
54+
L = Cape Town
55+
O = Coder
56+
OU = Team Coconut
57+
CN = myserver.local
58+
59+
[ v3_req ]
60+
subjectAltName = @alt_names
61+
62+
[ alt_names ]
63+
DNS.1 = myserver.local
64+
DNS.2 = www.myserver.local
65+
IP.1 = 127.0.0.1
66+
EOL
67+
68+
# Generate the server CSR
69+
openssl req -new -key $SERVER_KEY -out $SERVER_CSR -config $SERVER_CONF
70+
71+
# Create the server extensions configuration file
72+
cat > $V3_EXT_CONF <<EOL
73+
authorityKeyIdentifier=keyid,issuer
74+
basicConstraints=CA:FALSE
75+
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
76+
subjectAltName = @alt_names
77+
78+
[ alt_names ]
79+
DNS.1 = myserver.local
80+
DNS.2 = www.myserver.local
81+
IP.1 = 127.0.0.1
82+
EOL
83+
84+
# Generate the server certificate signed by the CA with a validity of 825 days
85+
openssl x509 -req -in $SERVER_CSR -CA $CA_CERT -CAkey $CA_KEY -CAcreateserial -out $SERVER_CERT -days 825 -extfile $V3_EXT_CONF
86+
87+
# Verify the server certificate
88+
openssl x509 -in $SERVER_CERT -text -noout | grep -A 1 "Subject Alternative Name"
89+
90+
echo "CA and server certificates generated successfully."
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
🤫
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
[ req ]
2+
distinguished_name = req_distinguished_name
3+
req_extensions = v3_req
4+
prompt = no
5+
6+
[ req_distinguished_name ]
7+
C = ZA
8+
ST = WC
9+
L = Cape Town
10+
O = Coder
11+
OU = Team Coconut
12+
CN = myserver.local
13+
14+
[ v3_req ]
15+
subjectAltName = @alt_names
16+
17+
[ alt_names ]
18+
DNS.1 = myserver.local
19+
DNS.2 = www.myserver.local
20+
IP.1 = 127.0.0.1
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIID9TCCAt2gAwIBAgIUAzDG0ZDj/mSdr82i9Ndl4tKTKN4wDQYJKoZIhvcNAQEL
3+
BQAwaDELMAkGA1UEBhMCWkExCzAJBgNVBAgMAldDMRIwEAYDVQQHDAlDYXBlIFRv
4+
d24xDjAMBgNVBAoMBUNvZGVyMRUwEwYDVQQLDAxUZWFtIENvY29udXQxETAPBgNV
5+
BAMMCENvZGVyIENBMB4XDTI0MDcxNTEzMzYwOFoXDTI2MTAxODEzMzYwOFowbjEL
6+
MAkGA1UEBhMCWkExCzAJBgNVBAgMAldDMRIwEAYDVQQHDAlDYXBlIFRvd24xDjAM
7+
BgNVBAoMBUNvZGVyMRUwEwYDVQQLDAxUZWFtIENvY29udXQxFzAVBgNVBAMMDm15
8+
c2VydmVyLmxvY2FsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArvkV
9+
9OEO/g3KmKrOzuvF1HQJiF/oR4wvbkLWrpuc4o0+++uJqEwHx/PkkHJLZiYvOuLG
10+
1ostI6G8it8pK8FjSLrdBZCMxi3yOAhXJaErTyOm4ACvf27o3HyWEcngUbpGyptZ
11+
ey7mcGFmqRsz4a9rzSjtuZQPuugCZfHpdo/w6WAE+W+/8KpUjvv/bsmKbsli1AsY
12+
edCcx5ZkYK3j7Dn/M95v/+hHvGdtcTXodWVqnEzblcUBw2zgZFo7B6jJNt6kgzJz
13+
ofv4r7st/F0LVOGc+VWkwnhL1yjcdXEsnGvhP4n5qzupVMEDGKThuOkBuYZ7Ug99
14+
8tcnuN1usJgvCDk1awIDAQABo4GQMIGNMB8GA1UdIwQYMBaAFKTYEZ1FBkMy/M58
15+
tCRSaTDOOs4XMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgTwMDMGA1UdEQQsMCqCDm15
16+
c2VydmVyLmxvY2FsghJ3d3cubXlzZXJ2ZXIubG9jYWyHBH8AAAEwHQYDVR0OBBYE
17+
FFGiAovKgGehDTXyxtI66xpHuyrSMA0GCSqGSIb3DQEBCwUAA4IBAQAVifeEzc3g
18+
wTaogC3GVYn4ty/oA5kMHEXNN39QSElZ0qKordPmjZx/5k5SkneCgN3LYzcJm1l6
19+
/t5khedYmtbuUmT91BC8R4+d4aGFGvvR8/4XHKAOyei9w50JIrSf0HkY91cEXzhU
20+
N1p/491TvLt/uNgHeSNBRQXXkBZj5ZCPgs6D1vLZUxI4XnVwE01I+Ivhiuo5UMC8
21+
AjFzomUVnqH23nTgRlaFQZJOYfWV80VV8oXfHzXKiqfGwizFzKaF01XBVdmzjz2x
22+
iL6OoOM/EiBgsmDeb3HP4HYuFDvgWqCNbmP6z7M+rs2XjJLM8Uaywvxdkm/ib3+y
23+
rSJnQig8Prw9
24+
-----END CERTIFICATE-----
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
-----BEGIN CERTIFICATE REQUEST-----
2+
MIIC+TCCAeECAQAwbjELMAkGA1UEBhMCWkExCzAJBgNVBAgMAldDMRIwEAYDVQQH
3+
DAlDYXBlIFRvd24xDjAMBgNVBAoMBUNvZGVyMRUwEwYDVQQLDAxUZWFtIENvY29u
4+
dXQxFzAVBgNVBAMMDm15c2VydmVyLmxvY2FsMIIBIjANBgkqhkiG9w0BAQEFAAOC
5+
AQ8AMIIBCgKCAQEArvkV9OEO/g3KmKrOzuvF1HQJiF/oR4wvbkLWrpuc4o0+++uJ
6+
qEwHx/PkkHJLZiYvOuLG1ostI6G8it8pK8FjSLrdBZCMxi3yOAhXJaErTyOm4ACv
7+
f27o3HyWEcngUbpGyptZey7mcGFmqRsz4a9rzSjtuZQPuugCZfHpdo/w6WAE+W+/
8+
8KpUjvv/bsmKbsli1AsYedCcx5ZkYK3j7Dn/M95v/+hHvGdtcTXodWVqnEzblcUB
9+
w2zgZFo7B6jJNt6kgzJzofv4r7st/F0LVOGc+VWkwnhL1yjcdXEsnGvhP4n5qzup
10+
VMEDGKThuOkBuYZ7Ug998tcnuN1usJgvCDk1awIDAQABoEYwRAYJKoZIhvcNAQkO
11+
MTcwNTAzBgNVHREELDAqgg5teXNlcnZlci5sb2NhbIISd3d3Lm15c2VydmVyLmxv
12+
Y2FshwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQCPWO5rV82kb4zI7OR4pjyU/AaD
13+
Wo2zIeyFIj+BpOe9jCYSdnPp4lagbV8Nal+rQPc7/pPTkjC+u1OZB2N3wYbICATn
14+
vw4lVLtrtIzts7lG+EI5tjqCU2nub5k3nDNGyrK/EuX3c9VJFTw9qmfB48gZWpAV
15+
mAkl4BO7HsSaGFXlykmoACERCHT8sVfJOO/rDxMJks+u++EyNQ1cQ9tR3hWaL4I2
16+
e1ZAmJ5Citlntwvq5BUDS96yYHZdM8rA0PQPeHi6CTJfgyEdX+yjtv/SZiXGYx1f
17+
KjGhgp6ln/DcDIhgp4oSmZID+3P3Kx8Yhv1U+2LbZoC8+4mkDhJw9Yns640O
18+
-----END CERTIFICATE REQUEST-----
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCu+RX04Q7+DcqY
3+
qs7O68XUdAmIX+hHjC9uQtaum5zijT7764moTAfH8+SQcktmJi864sbWiy0jobyK
4+
3ykrwWNIut0FkIzGLfI4CFcloStPI6bgAK9/bujcfJYRyeBRukbKm1l7LuZwYWap
5+
GzPhr2vNKO25lA+66AJl8el2j/DpYAT5b7/wqlSO+/9uyYpuyWLUCxh50JzHlmRg
6+
rePsOf8z3m//6Ee8Z21xNeh1ZWqcTNuVxQHDbOBkWjsHqMk23qSDMnOh+/ivuy38
7+
XQtU4Zz5VaTCeEvXKNx1cSyca+E/ifmrO6lUwQMYpOG46QG5hntSD33y1ye43W6w
8+
mC8IOTVrAgMBAAECggEACUw2JPmSnOBpvBwTej5gGE6ENSl3g9nIqXDGzKd7OjSs
9+
PKHDAlzr6u2kXyKbrBVqXBQx4bOqleKhzLVYEDmqB3LajNGmEV/ep6iVzOuYDBAG
10+
bY/Lw5dGq3S5Wr+h+mXOHjUMF7Yhy6X5WRIXey4hqdi7bSmXfmSWwAkPUVwLvrLj
11+
gj1Tp8Ll5SxeD1G9eOX1GYVChh2SUsVbLeGrovwcfCZaobEvc2U30SNOW4Sep7P1
12+
e+CZlIO02Ts1EroW7G41YvAon3EziaZEb3Esusx1LH+cpbCyDtiA/aCfLVKKJ2Ev
13+
YAbZAyBOAcXtIa+RT0Ipph/6fsC1l1uyyUOETGVwpQKBgQDV9mpX+UBmU6vXz1b+
14+
cZ116dI1irK8qrF2G62rTtwGEhhaDC1AIISsqm0Huav763KQ2OsM1eJiPUC3/Q/9
15+
ouNXPA5pTT524XnZhr3KEkDRgXmw1xbzYcLMVYYsDrvKvVUNlQcYGwxTzxcielMB
16+
Jx2F3P90uegMKwUGM5XAChhVpwKBgQDRWaDja7QN6NCrq6o1pAueJnAEGK4IqloS
17+
v/6tFJ6XTqCAUXhFkoAyXFUi1QN7PMV5igNF0VQkU90G9e2wTeE4GJr5yKRxBP9+
18+
v9KgRkDKz1DJcep2Abm618vGTPIs72sUph9R5eraI161F4AiGv6PLuM4/LbF+6YK
19+
/GF6Wz+inQKBgAYaEexSWmjQqAzuh8+X0+LB+VG3k+NXhtoUbf59sD6oE3O19zBl
20+
/QKjlZprzCDSFSFWXlWuX9dnYcodeHBGTe918f9EyaxAP+ZZNl5l6N1QsPS/HZNx
21+
TUnggoQNI4PjpGJPxrUESHS3ajR8gpN81xWzOMHOb3SxYWJM5E9mukzvAoGBAIZ2
22+
2R35maateQoqsqLNgSDNc3lOGMo8EKqmYv/slIh+2hxRN70IAgtWvuAmjZvkRrpv
23+
6PY5I6BJtVe5Mjfhbd1IAJKbSvPE0A4rSy/ir88UJcGdx4iQRyk5Xgs6dPpjtRWI
24+
Nem2kYgW28fZFlXRnNt+tDdwKj00C0xXGo0qes8JAoGAD9mj697kYV8LIsIk5Eo+
25+
NdbcjungM8dk8WKMgDxYnkviY/3liBHuvq99YPna2iVAQ3pHpuInFjbOTYdf26JB
26+
5wbuIBFHVGNsKKwIDAZdK1VzPh/E/88sDp63F/nLu8Q4EAVHxTr8VTt/GWV+VJSK
27+
RQi4ETleSTjzYeKWjJxlf+4=
28+
-----END PRIVATE KEY-----
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
authorityKeyIdentifier=keyid,issuer
2+
basicConstraints=CA:FALSE
3+
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
4+
subjectAltName = @alt_names
5+
6+
[ alt_names ]
7+
DNS.1 = myserver.local
8+
DNS.2 = www.myserver.local
9+
IP.1 = 127.0.0.1

0 commit comments

Comments
 (0)