added mutual auth testing server and cert generating script

This commit is contained in:
epi
2023-05-06 06:21:08 -05:00
parent ff40549140
commit ac3fdb1975
18 changed files with 212 additions and 139 deletions

View File

@@ -137,7 +137,7 @@ mod tests {
true,
&headers,
None,
vec!["tests/server-test-cert-1.pem".to_string()],
vec!["tests/mutual-auth/certs/server/server.crt.1".to_string()],
None,
None,
)
@@ -156,7 +156,7 @@ mod tests {
true,
&headers,
None,
vec!["tests/server-test-cert.der".to_string()],
vec!["tests/mutual-auth/certs/server/server.der".to_string()],
None,
None,
)
@@ -178,8 +178,8 @@ mod tests {
&headers,
None,
vec![
"tests/server-test-cert-1.pem".to_string(),
"tests/server-test-cert.der".to_string(),
"tests/mutual-auth/certs/server/server.crt.1".to_string(),
"tests/mutual-auth/certs/server/server.der".to_string(),
],
None,
None,
@@ -200,7 +200,7 @@ mod tests {
true,
&headers,
None,
vec!["tests/client-test-key.pem".to_string()],
vec!["tests/mutual-auth/certs/client/client.key".to_string()],
None,
None,
)

View File

@@ -120,13 +120,13 @@ impl HeuristicTests {
) {
if e.to_string().contains(":SSL") {
ferox_print(
&format!("Could not connect to {target_url} due to SSL errors (run with -k to ignore), skipping...\n => {}", e.root_cause()),
&format!("Could not connect to {target_url} due to SSL errors (run with -k to ignore), skipping...\n => {}\n", e.root_cause()),
&PROGRESS_PRINTER,
);
} else {
ferox_print(
&format!(
"Could not connect to {target_url}, skipping...\n => {}",
"Could not connect to {target_url}, skipping...\n => {}\n",
e.root_cause()
),
&PROGRESS_PRINTER,

View File

@@ -1,24 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIEEzCCAvsCFFl+iSi56LZsTqzz5Uo93MEr2VPsMA0GCSqGSIb3DQEBCwUAMEUx
CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
cm5ldCBXaWRnaXRzIFB0eSBMdGQwIBcNMjMwNTAyMTA0ODQ1WhgPMjA1MDA5MTYx
MDQ4NDVaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEBAQUA
A4ICDwAwggIKAoICAQCMcPcOliSzzcmRuJVEUsbtlk8x95+FC2y0m38XaayQk2am
DNi/UxAzlUsmWiw7a8E5OPnDZ0Vomr6LbpyjxFYx7ip1FWqGgsN033E44pANo5/M
pWx7hB+LLvhag3nRP2tvIST3rKfIEDmALMBwUPstwaAU9elYPWa21AiZsYu/JHxX
1vXs0C9NgQe+xp5KySj0OS7uJl2zMvTUMLwrIv/mb/T2mDOjKBKEiySY2XzhZ5mt
FWJoT746IPseD7XWsipubmzD6Pe0I8P718PgkRH2tcWAn99NNVeBgycSmv8sbPuJ
bNmZtq3RFDC1OMdVUWGydePWzE4/RdC2IOvZ61HP1PbT1iUSDltjENI/mtF77LSO
bW6yTxlPpHZIxdQ2p5hjBXywsffaeeAEBeZfZnQ+l5NWlOs+/sdaRMzjydK9m7mB
KHBcBytGA7WhZRw6U+W3kYrHCAGQ2XT2G0Ic7NEtcnUOyo1X1YkyVqUsqnCKqky6
k++r79lU7W7Pdh6kzN5QcTNiP1B/tHcVABRibZbSg037e979lHiFUEsYWRNfFRGt
6yKuZbdOp70Xz+E80EjzgW2TgLRC7uDU+KuzzHqMeE/y8qrHDjhtP5JzWk75vNZf
gBW1BZz2fUQTRx5kTXfAi5JlqS6qeyaWJ1kkBGb/7sfSaXIJ3X0t17ccEoDS/wID
AQABMA0GCSqGSIb3DQEBCwUAA4IBAQACsWdZOXs96bfWwrVyJHLqe9zqNcO//4tB
ZsP2bodjmJd6q6HDAZItb+PN6++FLyK5H3hLiH6ikn64zogvidB6F7Qyr4dKRAuc
SaKb3QnmzC1gNImD37IIsNQdPswn8giPYT/koqJlvF8uPVFf0s7ml+nhzCwx4nTs
yJvwzHrSDUVMfzt/MEh5TNfbCh9kCP6fdBcBUsDlK6jnMRmEEWk1603LgKTzE/tF
HSxB1r29lvdJTjwvHuL5Du1ZrnG2adn/OfGi1PJr6Z7FncFqiPqozEqa3GqWZaos
243yZaP5NPFUHNwAMmT1x76rQZj0cMrSSlSM8apoFLffJLXDQOrp
-----END CERTIFICATE-----

View File

@@ -1,52 +0,0 @@
-----BEGIN PRIVATE KEY-----
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
0S+JA2o3sM6fCPguNTeGqT8P3ZyPVVc=
-----END PRIVATE KEY-----

View File

@@ -0,0 +1,17 @@
(mTLS) {
tls {
client_auth {
mode require_and_verify
trusted_ca_cert_file certs/server/ca.crt
}
}
}
https://localhost:8001 {
import mTLS
log
handle / {
file_server browse
}
}

View File

@@ -0,0 +1,6 @@
# Testing mTLS
- run `gen-certs.sh`
- run `sudo /path/to/caddy run`
- expect listener on port 8001
- run `feroxbuster -u https://localhost:8001 --client-key certs/client/client.key --client-cert certs/client/client.crt`

View File

@@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE-----
MIICqzCCAZMCFE22XDzrLwkJIkb3EdP333d4HoXQMA0GCSqGSIb3DQEBCwUAMBMx
ETAPBgNVBAMMCFNlcnZlckNBMB4XDTIzMDUwNjExMDYyM1oXDTI0MDUwNTExMDYy
M1owETEPMA0GA1UEAwwGQ2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAz3EPWMsh+dfPdbHtpNhizZZs+r0djzdHHgkbnNQ1PodWDnv0Rf1YgNEa
umQuUvIgjMtorRqbz9HLG4+H2aR5KHgPwBNHyKS4PEiQvWDV88aJxdMbgL/IfzAt
di85UcBUkyqUe1r6vIS0smJo1wVwxLEmD6kdt1BEI3LaK1j99JeG8TAS8f+/xf4s
ouE4lA+y3bJQP18wUGuyudntFQBKgjY2Tx+RWbBcx0zW68M7IMQ5bDz0oK9MYw8G
q2vwcRyMLuoyNpbDT5mI2wsQu/r2O0CCNbtkg5JxasdYR7Llw9YTl74st3dshM9e
4V5uuVotcWXW6U518nWHOQy9qiBSOQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQB4
xOVvWrRZ4SBqzaen32COXpjddX28Q7YmNB/UKl3ZT7R1dIjUMfJz2le0mj2UpSAr
rDT7PCsXnDP0KswGiJC3IVTa/hnkUk798jwUvp221jvebyy8/NMWfWPoIKfhELdb
3uJfrGyQuB8Zf9Q1hc9jYDX27EbGaDSpOrpE9Ej2riVnbgBKZsS5jcfY8JDrkv+F
4cP2pTu6mVRuU1Bzx3SB0Vg2uGi1QTJuuA905Y3zpoRfTtybKlRRkMQk+46xrdyV
x64wq9zcL6Kq4D/UE3EjLnjbRw6H6g8jbnBjT5KRfP2tmbF9RTZs44Dl0hYvXber
HrvWtxHG8OJ8BLQg1rQd
-----END CERTIFICATE-----

View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDPcQ9YyyH51891
se2k2GLNlmz6vR2PN0ceCRuc1DU+h1YOe/RF/ViA0Rq6ZC5S8iCMy2itGpvP0csb
j4fZpHkoeA/AE0fIpLg8SJC9YNXzxonF0xuAv8h/MC12LzlRwFSTKpR7Wvq8hLSy
YmjXBXDEsSYPqR23UEQjctorWP30l4bxMBLx/7/F/iyi4TiUD7LdslA/XzBQa7K5
2e0VAEqCNjZPH5FZsFzHTNbrwzsgxDlsPPSgr0xjDwara/BxHIwu6jI2lsNPmYjb
CxC7+vY7QII1u2SDknFqx1hHsuXD1hOXviy3d2yEz17hXm65Wi1xZdbpTnXydYc5
DL2qIFI5AgMBAAECggEAC8XVeoM1w4uITDxLucMnkVYgC3dj5/K5zCY1bVg8SNcO
rt4BSh8TkKT9ZLZmjCHOb9sj7s4PqXLVOXRTAAq17xJoR2z4shYKGC7AmyTVo6MB
AuuFGDCaMQCzlc1ejgmRqzP7jwgl6oDIDgcofsqB4MHSgIlHJNYO9emQ4OypJgJA
xd8KT5S/hThJG1VqJ6P0oiB/WBlzcJ5wX4GSVE25RlpRX8ogqCyI9V+SRq2CrG7U
Jqv3Kbag7derTfqmsKyjv/kckOgfKH/rm61HMrYshcPfgxL2fZe2Q8wCTexvhZwZ
8vD8bvR++SxOxbigCIB7ReYgmoj4bocjqDX4vUhe8QKBgQD35oDdOa2uiOs7NWVf
IV1ZwPWxxwnYFIEA8paQwsYGIxHrYNdGSsGBzwvLDPpTeOO0VdoC+sP5zytTv547
djeOzGf9Hj6swa5tPdzkYjZV/85mnmGKaEmmCN4AvpYol5l2BTetFtX0v6QEaqvU
uZbV5X2UcuClExA0frNUJDVHkQKBgQDWOCZq1r9X3iEkcFSBhironVNj80jFqIum
rMbGUUcOI05U2hkmMDluSW1NNL2k+SNJXq7fmkjIQEXffqcbsXUSIQB0MU6yddt5
7+c19ioZChx91Kl049rKQ21kPTh7D0TCUvDQLapt2xbUNg6rGCLSrkkVlWwxLnDU
pNk/c4QcKQKBgEreedLWhabtwSV7pecKO5hM16dedpGk96UinuiPeqEF3HabI8kd
8L1Um7oybDPjkdm4CATYWXHL6Mj9WTuaI4NkJo/in4krYZOqmFj9dG2auWpysQDN
KFkV2n6dENqnlnh3cO48tFebvVx8HvM7Ldvh2ICKBWC1ljJUhbKG0PSRAoGBAJVy
fNLCWKEbVbHPMBVgnaTExT2Qp29F4493MAGBCHpDhU1LDoqG0DoxvbBEIB3stYJl
LMjQIQCbXmPKPxjh15O7NE7ba1SzRleuV3Zc8wee9zuN1l6265d6LOHml/W6NDUB
mgESKrkTRLztrZQNdZXXgyMsqFszVAH1s55Bn6PpAoGBAN13Ev7Ynysdvkc3aHO6
qM0hH6mAlEOAyCTk5r/0cyz9rGyYWXiVXen0ftSaBcISdzhrVkRDs3rLrHwEXdu1
Y2Z1HhZkILw/C4t+Eaa6FOWfwwPAdOpaxYpxKxCEeCBKmkd1z0Dx0vDEDrt+AaHa
UYIQ9wAbZpuKGfFQceyr1lBO
-----END PRIVATE KEY-----

View File

@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDBzCCAe+gAwIBAgIUG3vb4pIbvaI/+LzOpu6Z4b6s4iIwDQYJKoZIhvcNAQEL
BQAwEzERMA8GA1UEAwwIU2VydmVyQ0EwHhcNMjMwNTA2MTEwNjIzWhcNMzMwNTAz
MTEwNjIzWjATMREwDwYDVQQDDAhTZXJ2ZXJDQTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAKazNKPaH8LDzcaZRvBLrDNJkL1pukmB36mbczj07hZVbPmS
/hyBvAdBFom0ZTw5dIpsUtRSZbDPrsCVpdY9O1jxwhrDi6mfvyJtKLEbTW4PvARq
WwDhpa2SYwBMI+0ilXWTAzwJuWT1NhuUsAcB6SGwkNm3iKqZUDxn3V2L2AHRcKEJ
9Zn9ePP4BsvtAS8ZBLxTnoo7R2SHiWwjDwuTtS4fQ5bWzGkmdmeuJ7JJt4ZzQV+m
MBqrK3XVi+MXayvt5affGvHj/KuhlVBXHnUgSvEgFpuhK9elsds2iRho8mp1d0iH
EIMp9LHVftsIpUxbKt/Pa/JL7oG9LBIvPj/SIjsCAwEAAaNTMFEwHQYDVR0OBBYE
FLlRKsDb/ducVIBirME0VJZ3TwfkMB8GA1UdIwQYMBaAFLlRKsDb/ducVIBirME0
VJZ3TwfkMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAD7lqNzU
wxuyO60Gn2q6DUBb1Kseq6bSndNHeagdfMfKManKl1YObnB0ciTO3bnmNXiXktSu
BsQzlmr3O+H6X39Vpdyqq4SoOcOt0I+bvBykk1UZqEoc7jGXdZVmnk9Q0uoKtWxJ
rV9CHEhyPNnEh4W07y05UUn9S6EiKy5232yi4USdmk44GXhFblS5inhTTxca2vEq
9h+FH+QZ7ehaAaWR+EaQjXNwm2mN7gWxM3Q6RfK9N67MHD9ggmfdyZmnyt5gCidC
ys4W4stEh6d6fXZT77dcGaHKdXW3GwP3ZcAlRFYPqpAvWzndC9kDCgIULeSP1ALy
cILcb0HQvNS0t60=
-----END CERTIFICATE-----

View File

@@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE-----
MIICrzCCAZcCFGMKRtmMLuut+sxC+TbWQfum7oXZMA0GCSqGSIb3DQEBCwUAMBQx
EjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0yMzA1MDYxMTA2MjNaFw0zMzA1MDMxMTA2
MjNaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAKazNKPaH8LDzcaZRvBLrDNJkL1pukmB36mbczj07hZVbPmS/hyB
vAdBFom0ZTw5dIpsUtRSZbDPrsCVpdY9O1jxwhrDi6mfvyJtKLEbTW4PvARqWwDh
pa2SYwBMI+0ilXWTAzwJuWT1NhuUsAcB6SGwkNm3iKqZUDxn3V2L2AHRcKEJ9Zn9
ePP4BsvtAS8ZBLxTnoo7R2SHiWwjDwuTtS4fQ5bWzGkmdmeuJ7JJt4ZzQV+mMBqr
K3XVi+MXayvt5affGvHj/KuhlVBXHnUgSvEgFpuhK9elsds2iRho8mp1d0iHEIMp
9LHVftsIpUxbKt/Pa/JL7oG9LBIvPj/SIjsCAwEAATANBgkqhkiG9w0BAQsFAAOC
AQEAjPAtZs1by2h/1fr/ypojw16llzbReT8J+T8YHSTf6YwjoE83I0QDOLEo1ax+
e/8qyQLs0EnlfdomNyA4Z/ECbY5c1nY0Dp//u6WH7AwLUx5HiwUw4Fmxu9Q/oB1o
3vhIPl5Vd/VpdxDzuO8q8WvagwjVaxsZP3PVaBDRzZZPldPgTakfk+w5XnjNfgJi
RDRutTRe6KBOxt7PAzAVV71FtOIq0b4xCNJGNurYBhRgZ5iQ7yMw+I5Vte1TakWr
9gfE/yoKbU1W+y0QxSDTsnTCO4i3mXmBTuceTVWELwqZcr34W7n3vD8UtZQfanML
cHCZaLPSMDuDtS74FSamP3i+oQ==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE-----
MIICrzCCAZcCFGMKRtmMLuut+sxC+TbWQfum7oXZMA0GCSqGSIb3DQEBCwUAMBQx
EjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0yMzA1MDYxMTA2MjNaFw0zMzA1MDMxMTA2
MjNaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAKazNKPaH8LDzcaZRvBLrDNJkL1pukmB36mbczj07hZVbPmS/hyB
vAdBFom0ZTw5dIpsUtRSZbDPrsCVpdY9O1jxwhrDi6mfvyJtKLEbTW4PvARqWwDh
pa2SYwBMI+0ilXWTAzwJuWT1NhuUsAcB6SGwkNm3iKqZUDxn3V2L2AHRcKEJ9Zn9
ePP4BsvtAS8ZBLxTnoo7R2SHiWwjDwuTtS4fQ5bWzGkmdmeuJ7JJt4ZzQV+mMBqr
K3XVi+MXayvt5affGvHj/KuhlVBXHnUgSvEgFpuhK9elsds2iRho8mp1d0iHEIMp
9LHVftsIpUxbKt/Pa/JL7oG9LBIvPj/SIjsCAwEAATANBgkqhkiG9w0BAQsFAAOC
AQEAjPAtZs1by2h/1fr/ypojw16llzbReT8J+T8YHSTf6YwjoE83I0QDOLEo1ax+
e/8qyQLs0EnlfdomNyA4Z/ECbY5c1nY0Dp//u6WH7AwLUx5HiwUw4Fmxu9Q/oB1o
3vhIPl5Vd/VpdxDzuO8q8WvagwjVaxsZP3PVaBDRzZZPldPgTakfk+w5XnjNfgJi
RDRutTRe6KBOxt7PAzAVV71FtOIq0b4xCNJGNurYBhRgZ5iQ7yMw+I5Vte1TakWr
9gfE/yoKbU1W+y0QxSDTsnTCO4i3mXmBTuceTVWELwqZcr34W7n3vD8UtZQfanML
cHCZaLPSMDuDtS74FSamP3i+oQ==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE-----
MIICrzCCAZcCFGMKRtmMLuut+sxC+TbWQfum7oXZMA0GCSqGSIb3DQEBCwUAMBQx
EjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0yMzA1MDYxMTA2MjNaFw0zMzA1MDMxMTA2
MjNaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAKazNKPaH8LDzcaZRvBLrDNJkL1pukmB36mbczj07hZVbPmS/hyB
vAdBFom0ZTw5dIpsUtRSZbDPrsCVpdY9O1jxwhrDi6mfvyJtKLEbTW4PvARqWwDh
pa2SYwBMI+0ilXWTAzwJuWT1NhuUsAcB6SGwkNm3iKqZUDxn3V2L2AHRcKEJ9Zn9
ePP4BsvtAS8ZBLxTnoo7R2SHiWwjDwuTtS4fQ5bWzGkmdmeuJ7JJt4ZzQV+mMBqr
K3XVi+MXayvt5affGvHj/KuhlVBXHnUgSvEgFpuhK9elsds2iRho8mp1d0iHEIMp
9LHVftsIpUxbKt/Pa/JL7oG9LBIvPj/SIjsCAwEAATANBgkqhkiG9w0BAQsFAAOC
AQEAjPAtZs1by2h/1fr/ypojw16llzbReT8J+T8YHSTf6YwjoE83I0QDOLEo1ax+
e/8qyQLs0EnlfdomNyA4Z/ECbY5c1nY0Dp//u6WH7AwLUx5HiwUw4Fmxu9Q/oB1o
3vhIPl5Vd/VpdxDzuO8q8WvagwjVaxsZP3PVaBDRzZZPldPgTakfk+w5XnjNfgJi
RDRutTRe6KBOxt7PAzAVV71FtOIq0b4xCNJGNurYBhRgZ5iQ7yMw+I5Vte1TakWr
9gfE/yoKbU1W+y0QxSDTsnTCO4i3mXmBTuceTVWELwqZcr34W7n3vD8UtZQfanML
cHCZaLPSMDuDtS74FSamP3i+oQ==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmszSj2h/Cw83G
mUbwS6wzSZC9abpJgd+pm3M49O4WVWz5kv4cgbwHQRaJtGU8OXSKbFLUUmWwz67A
laXWPTtY8cIaw4upn78ibSixG01uD7wEalsA4aWtkmMATCPtIpV1kwM8Cblk9TYb
lLAHAekhsJDZt4iqmVA8Z91di9gB0XChCfWZ/Xjz+AbL7QEvGQS8U56KO0dkh4ls
Iw8Lk7UuH0OW1sxpJnZnrieySbeGc0FfpjAaqyt11YvjF2sr7eWn3xrx4/yroZVQ
Vx51IErxIBaboSvXpbHbNokYaPJqdXdIhxCDKfSx1X7bCKVMWyrfz2vyS+6BvSwS
Lz4/0iI7AgMBAAECggEAKvz2u7Rh0WOWGrtnQEt7bkRv13C+8frUd1QXnB4JkefY
sOmXrzlDiGlgCwXiv2ufopy5pXhUMgr0qUROHlfvCIpbwHQh/Y2tCA83WajNSG81
ULwumKUYCRFBh4+bCimLemT9hguJ7D+SAv3OgRgciywRxpteWoQr3U/5lYidHSZ/
gv13lVKbn72zD5opeGA2hS1MlLZV/xueSvhT3lzbv61hqdersACj2Tvi8O2/imVy
XjEZnPRQhlFPtiAN5J3on6Xo+MqieuhA3yxhBrYoLsMrTCK6ePThdXfcgmpEjQ8l
6HxNmnPri5KbxCTbGgCjMiSidnRim2IpBMEP32eN8QKBgQDLr2CoMdyliFU6Gm1P
rxWTMnvzdVbXUp4B8YEdyNyKdWt50cqbB3UvnFX2gpELYdy3uYcXTKm+Nynruam1
Z/Ya1HXwN+wdgQhjq9n4izLvEfUkXWDNNikQmts8Uxkp+uEK+OOp1/NjZlA6YdS3
crq5wPxLoAP2JxiaoIJF74QMqwKBgQDRhABgZbWVHwPcLVVqZ5+MJYvQORqIqapf
kGe/jR/CMC0Tkop2O1tY3f68bMNKkXfj7QEtDlppMswZ9MOqBBr56yGZzrQa+cB3
lF4+hP06OvyIkdmZlP4NHm/DtF9gt1KjWPF2VcIfD3VfZO8E/XJn2n1KnKCU+4cb
lyJYi9AgsQKBgQCWkgPy8kE5QSo3tJeAI17gnJ5SoDhdHp7dsukO2pBl7l1QBY0v
w3iWhIxrmaOddW+ThZve1nZYvjDIKEzTZJHizZKNzNlICj3oaH7OpCA36N9+TWUk
7le3BbLxykA870/zK4Ao6xHqNhUyw2VbY32zmX0obpbfHZGrpOIIzwGf1wKBgDlM
U1oJls5QbBrT3w85hZ2rSwBIDaSgWfLGqEjvjGbsC/fVVL6e3w1/sMHRMNt8yv/v
einbSgiJFt5mXPhrJQGCN28742+ZK/TIA7ovXp2FMjkbQhpJb+0gjMpF0uu9VwFL
OsX1ECC0dpH/JYsE0TvrueYkzZnQ7BM0kvUKT4IRAoGAOPVed0zkDh3iobQ3A3IG
JepRygabC68iOHlrD6sVxST0HdyP9pxwMe9gnz5TDAZkWvhJV0UUmaMCpbShsc+n
ymKSNnXAxt+G6XHH3Mg9aDNi70og4HhhT6dU2579xUOBY2057ZgpWXK3rf+JKls4
XlkplyHw0UqkEhCw+FMa3Gs=
-----END PRIVATE KEY-----

31
tests/mutual-auth/gen-certs.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/bash
# Create server and client certificate directories
mkdir -p certs/server
mkdir -p certs/client
# Generate server key
openssl genrsa -out certs/server/server.key 2048
# Generate a Certificate Signing Request (CSR) for the server key
openssl req -new -key certs/server/server.key -out certs/server/server.csr -subj "/CN=localhost"
# Self-sign the server CSR to create the server certificate
openssl x509 -req -in certs/server/server.csr -signkey certs/server/server.key -out certs/server/server.crt -days 3650
# Generate server-side Certificate Authority (CA) file
openssl req -x509 -nodes -new -key certs/server/server.key -sha256 -days 3650 -out certs/server/ca.crt -subj "/CN=ServerCA"
# Generate client key
openssl genrsa -out certs/client/client.key 2048
# Generate a Certificate Signing Request (CSR) for the client key
openssl req -new -key certs/client/client.key -out certs/client/client.csr -subj "/CN=Client"
# Sign the client CSR with the server CA to create the client certificate
openssl x509 -req -in certs/client/client.csr -CA certs/server/ca.crt -CAkey certs/server/server.key -CAcreateserial -out certs/client/client.crt -days 365
# Cleanup
rm -f certs/server/server.csr
rm -f certs/client/client.csr

View File

@@ -1,24 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIEEzCCAvsCFBZ5XADLte+8KNDUrOSVlYr8EHIRMA0GCSqGSIb3DQEBCwUAMEUx
CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
cm5ldCBXaWRnaXRzIFB0eSBMdGQwIBcNMjMwNTAyMTA0NzUyWhgPMjA1MDA5MTYx
MDQ3NTJaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEBAQUA
A4ICDwAwggIKAoICAQDDId1K+ZtHmZr4+dn5ClZjY2S+2sIoP8vEdClCyLqpTbpZ
bnZEr9zOGvBHHqhE9umS6cCglUY1BQ4t0xkuaHtggEqHZGHWGeuCqwTnWZ+oT6Ht
U85GUrmdkQg2IsvBYsaJVbw8czfyalPCEf9/U8kZAfnHIdIf9HJoe4/JzvBL44ws
20wNMJqZL4sicqjxPsZSoUgV8KMrOgUt/0OjpnpQdUElqv5H/cQVrwotqbU17hn9
xRuys0Ffjn+uaSrmybVuD1cVcl6AD3k5cMArqrYeY/0FfmAszT/Tj+5abjAjcNSj
uiOPTdy7JUT2QeoStCN4NYjemeFaTYTB6GaxfcDreGd0KR17wOttCzWMdKdd1IcF
B0/R2x6CvAS/ySrEHN9KiW6y5Qc9KARBrKPciaxC95Ppe1xsK0gb3qCfMIDCo5Lr
GbmpAUtpoT99ehrLlfIeBcHaHxvA2LNrot1Cgwe+dORy1vd7UMFBqMzC3DuARlzo
h+dAMvPeVGKoafzz04DqNvgENso/v/aJ7Ull2hVgt0TLJOC4fA2alHTksflXs5yL
zIk6BsIZ4vAJvO4uoGy0FGx4E0FiL8aroZOcaFYnyQxUbjT0MFK6nxPUsNpbFCMc
1UMPNoMpKm8NfnMUxPLDU46aqLSdtxk8yYwa80Ju0tMLRYh1zV8EquEvj6qUBwID
AQABMA0GCSqGSIb3DQEBCwUAA4IBAQBVvYDjooL41GhlyUVDYox0bR8WTLx8XxKG
p0ByZ6j92DwKJXk6mHd85lZuHDq7hRF4g5gxdbmG847/Iqh4VPR6iQmtq7ROXwBU
+kGBvRIHngilobn6TYHCKdiaWxIPJuth/ws/92JGxkBGqJtphcOwlOIEuh+5rIU8
zZfLlJItICsZ4MMNpOhHJRKtTiltPorQnj/IiGnTRXa3jZapwPv70XdtgiOUCTeV
scyOca3K3Xn84RQypLbPf2wZx8/rEi3F9+ppTXwSiA6PstkAK3nuZJZWKTUIVVRo
6WAlycUHFbJhSJyk1BBUIw4ySUvjcwF3uFCQavIt+6RaPkKzV3qu
-----END CERTIFICATE-----

View File

@@ -1,24 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIEEzCCAvsCFBZ5XADLte+8KNDUrOSVlYr8EHIRMA0GCSqGSIb3DQEBCwUAMEUx
CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
cm5ldCBXaWRnaXRzIFB0eSBMdGQwIBcNMjMwNTAyMTA0NzUyWhgPMjA1MDA5MTYx
MDQ3NTJaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEBAQUA
A4ICDwAwggIKAoICAQDDId1K+ZtHmZr4+dn5ClZjY2S+2sIoP8vEdClCyLqpTbpZ
bnZEr9zOGvBHHqhE9umS6cCglUY1BQ4t0xkuaHtggEqHZGHWGeuCqwTnWZ+oT6Ht
U85GUrmdkQg2IsvBYsaJVbw8czfyalPCEf9/U8kZAfnHIdIf9HJoe4/JzvBL44ws
20wNMJqZL4sicqjxPsZSoUgV8KMrOgUt/0OjpnpQdUElqv5H/cQVrwotqbU17hn9
xRuys0Ffjn+uaSrmybVuD1cVcl6AD3k5cMArqrYeY/0FfmAszT/Tj+5abjAjcNSj
uiOPTdy7JUT2QeoStCN4NYjemeFaTYTB6GaxfcDreGd0KR17wOttCzWMdKdd1IcF
B0/R2x6CvAS/ySrEHN9KiW6y5Qc9KARBrKPciaxC95Ppe1xsK0gb3qCfMIDCo5Lr
GbmpAUtpoT99ehrLlfIeBcHaHxvA2LNrot1Cgwe+dORy1vd7UMFBqMzC3DuARlzo
h+dAMvPeVGKoafzz04DqNvgENso/v/aJ7Ull2hVgt0TLJOC4fA2alHTksflXs5yL
zIk6BsIZ4vAJvO4uoGy0FGx4E0FiL8aroZOcaFYnyQxUbjT0MFK6nxPUsNpbFCMc
1UMPNoMpKm8NfnMUxPLDU46aqLSdtxk8yYwa80Ju0tMLRYh1zV8EquEvj6qUBwID
AQABMA0GCSqGSIb3DQEBCwUAA4IBAQBVvYDjooL41GhlyUVDYox0bR8WTLx8XxKG
p0ByZ6j92DwKJXk6mHd85lZuHDq7hRF4g5gxdbmG847/Iqh4VPR6iQmtq7ROXwBU
+kGBvRIHngilobn6TYHCKdiaWxIPJuth/ws/92JGxkBGqJtphcOwlOIEuh+5rIU8
zZfLlJItICsZ4MMNpOhHJRKtTiltPorQnj/IiGnTRXa3jZapwPv70XdtgiOUCTeV
scyOca3K3Xn84RQypLbPf2wZx8/rEi3F9+ppTXwSiA6PstkAK3nuZJZWKTUIVVRo
6WAlycUHFbJhSJyk1BBUIw4ySUvjcwF3uFCQavIt+6RaPkKzV3qu
-----END CERTIFICATE-----

View File

@@ -670,8 +670,8 @@ fn banner_prints_server_certs() {
.arg("--url")
.arg("http://localhost")
.arg("--server-certs")
.arg("tests/server-test-cert-1.pem")
.arg("tests/server-test-cert-2.pem")
.arg("tests/mutual-auth/certs/server/server.crt.1")
.arg("tests/mutual-auth/certs/server/server.crt.2")
.arg("--wordlist")
.arg("/definitely/doesnt/exist/0cd7fed0-47f4-4b18-a1b0-ac39708c1676")
.assert()
@@ -686,8 +686,8 @@ fn banner_prints_server_certs() {
.and(predicate::str::contains("Timeout (secs)"))
.and(predicate::str::contains("User-Agent"))
.and(predicate::str::contains("Server Certificates"))
.and(predicate::str::contains("server-test-cert-1.pem"))
.and(predicate::str::contains("server-test-cert-2.pem"))
.and(predicate::str::contains("server.crt.1"))
.and(predicate::str::contains("server.crt.2"))
.and(predicate::str::contains("─┴─")),
);
}
@@ -701,9 +701,9 @@ fn banner_prints_client_cert_and_key() {
.arg("--url")
.arg("http://localhost")
.arg("--client-cert")
.arg("tests/client-test-cert.pem")
.arg("tests/mutual-auth/certs/client/client.crt")
.arg("--client-key")
.arg("tests/client-test-key.pem")
.arg("tests/mutual-auth/certs/client/client.key")
.arg("--wordlist")
.arg("/definitely/doesnt/exist/0cd7fed0-47f4-4b18-a1b0-ac39708c1676")
.assert()
@@ -719,8 +719,8 @@ fn banner_prints_client_cert_and_key() {
.and(predicate::str::contains("User-Agent"))
.and(predicate::str::contains("Client Certificate"))
.and(predicate::str::contains("Client Key"))
.and(predicate::str::contains("client-test-cert.pem"))
.and(predicate::str::contains("client-test-key.pem"))
.and(predicate::str::contains("certs/client/client.crt"))
.and(predicate::str::contains("certs/client/client.key"))
.and(predicate::str::contains("─┴─")),
);
}