1
1
imports :
2
2
- https://raw.githubusercontent.com/dotnet/crank/main/src/Microsoft.Crank.Jobs.Bombardier/bombardier.yml
3
3
- https://raw.githubusercontent.com/dotnet/crank/main/src/Microsoft.Crank.Jobs.HttpClient/httpclient.yml
4
+ - https://github.com/dotnet/crank/blob/main/src/Microsoft.Crank.Jobs.Wrk/wrk.yml?raw=true
4
5
- https://github.com/aspnet/Benchmarks/blob/main/scenarios/aspnet.profiles.yml?raw=true
5
6
- https://github.com/aspnet/Benchmarks/blob/main/build/azure.profile.yml?raw=true
6
7
@@ -18,11 +19,12 @@ jobs:
18
19
# behavioral settings
19
20
mTLS : false # enables settings on http.sys to negotiate client cert on connections
20
21
tlsRenegotiation : false # enables client cert validation
22
+ certPublicKeyLength : 2048 # controls cert with such a length is used for the test
21
23
# debug settings
22
24
certValidationConsoleEnabled : false
23
25
statsEnabled : false
24
26
logRequestDetails : false
25
- arguments : " --urls https://{{serverAddress}}:{{serverPort}} --mTLS {{mTLS}} --certValidationConsoleEnabled {{certValidationConsoleEnabled}} --statsEnabled {{statsEnabled}} --tlsRenegotiation {{tlsRenegotiation}} --logRequestDetails {{logRequestDetails}}"
27
+ arguments : " --urls https://{{serverAddress}}:{{serverPort}} --mTLS {{mTLS}} --certValidationConsoleEnabled {{certValidationConsoleEnabled}} --statsEnabled {{statsEnabled}} --tlsRenegotiation {{tlsRenegotiation}} --logRequestDetails {{logRequestDetails}} --certPublicKeyLength {{certPublicKeyLength}} "
26
28
27
29
kestrelServer :
28
30
source :
@@ -35,11 +37,12 @@ jobs:
35
37
mTLS : false
36
38
tlsRenegotiation : false
37
39
tlsProtocols : " tls12,tls13"
40
+ certPublicKeyLength : 2048 # controls cert with such a length is used for the test
38
41
# debug settings
39
42
certValidationConsoleEnabled : false
40
43
statsEnabled : false
41
44
logRequestDetails : false
42
- arguments : " --urls https://{{serverAddress}}:{{serverPort}} --mTLS {{mTLS}} --certValidationConsoleEnabled {{certValidationConsoleEnabled}} --tlsProtocols {{tlsProtocols}} --statsEnabled {{statsEnabled}} --tlsRenegotiation {{tlsRenegotiation}} --logRequestDetails {{logRequestDetails}}"
45
+ arguments : " --urls https://{{serverAddress}}:{{serverPort}} --mTLS {{mTLS}} --certValidationConsoleEnabled {{certValidationConsoleEnabled}} --tlsProtocols {{tlsProtocols}} --statsEnabled {{statsEnabled}} --tlsRenegotiation {{tlsRenegotiation}} --logRequestDetails {{logRequestDetails}} --certPublicKeyLength {{certPublicKeyLength}} "
43
46
44
47
dockerLinuxKestrelServer :
45
48
sources :
@@ -58,13 +61,28 @@ jobs:
58
61
certValidationConsoleEnabled : false
59
62
statsEnabled : false
60
63
64
+ dockerLinuxNginxServer :
65
+ sources :
66
+ dockerNginx :
67
+ repository : https://github.com/aspnet/benchmarks.git
68
+ branchOrCommit : main
69
+ dockerFile : dockerNginx/src/BenchmarksApps/TLS/Nginx/Dockerfile
70
+ dockerImageName : dockerNginx
71
+ dockerContextDirectory : dockerNginx/src/BenchmarksApps/TLS
72
+ port : 8080
73
+ readyStateText : Application started.
74
+ environmentVariables :
75
+ urls : " https://*:8080" # any ip, port 8080
76
+
61
77
scenarios :
62
78
63
79
# HTTP.SYS
64
80
65
81
tls-handshakes-httpsys :
66
82
application :
67
83
job : httpSysServer
84
+ variables :
85
+ certPublicKeyLength : 2048
68
86
load :
69
87
job : httpclient
70
88
variables :
@@ -78,37 +96,38 @@ scenarios:
78
96
application :
79
97
job : httpSysServer
80
98
variables :
99
+ certPublicKeyLength : 2048
81
100
mTLS : true # enables settings on http.sys to negotiate client cert on connections
82
101
tlsRenegotiation : true # enables client cert validation
83
- certValidationConsoleEnabled : false # only for debug purposes
84
- serverPort : 8080 # IMPORTANT: not to intersect with other tests in case http.sys configuration impacts other benchmarks
85
102
load :
86
103
job : httpclient
87
104
variables :
88
- serverPort : 8080 # in sync with server
89
105
path : /hello-world
90
106
presetHeaders : connectionclose
91
107
connections : 32
92
108
serverScheme : https
93
- certPath : https://raw.githubusercontent.com/aspnet/Benchmarks/refs/heads/main/src/BenchmarksApps/TLS/HttpSys/testCert.pfx
109
+ # [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="This is a dummy cert for testing")]
110
+ certPath : https://raw.githubusercontent.com/aspnet/Benchmarks/refs/heads/main/src/BenchmarksApps/TLS/Certificates/2048/testCert-2048.pfx
111
+ # [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="This is a dummy password for testing")]
94
112
certPwd : testPassword
95
113
sslProtocol : tls12
96
114
97
115
tls-renegotiation-httpsys :
98
116
application :
99
117
job : httpSysServer
100
118
variables :
101
- mTLS : false
119
+ certPublicKeyLength : 2048
102
120
tlsRenegotiation : true
103
- certValidationConsoleEnabled : false # only for debug purposes
104
121
load :
105
122
job : httpclient
106
123
variables :
107
124
path : /hello-world
108
125
presetHeaders : connectionclose
109
126
connections : 32
110
127
serverScheme : https
111
- certPath : https://raw.githubusercontent.com/aspnet/Benchmarks/refs/heads/main/src/BenchmarksApps/TLS/HttpSys/testCert.pfx
128
+ # [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="This is a dummy cert for testing")]
129
+ certPath : https://raw.githubusercontent.com/aspnet/Benchmarks/refs/heads/main/src/BenchmarksApps/TLS/Certificates/2048/testCert-2048.pfx
130
+ # [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="This is a dummy password for testing")]
112
131
certPwd : testPassword
113
132
sslProtocol : tls12
114
133
@@ -117,6 +136,8 @@ scenarios:
117
136
tls-handshakes-kestrel :
118
137
application :
119
138
job : kestrelServer
139
+ variables :
140
+ certPublicKeyLength : 2048
120
141
load :
121
142
job : httpclient
122
143
variables :
@@ -130,34 +151,38 @@ scenarios:
130
151
application :
131
152
job : kestrelServer
132
153
variables :
154
+ certPublicKeyLength : 2048
133
155
mTLS : true
134
- certValidationConsoleEnabled : false # only for debug purposes
135
156
load :
136
157
job : httpclient
137
158
variables :
138
159
path : /hello-world
139
160
presetHeaders : connectionclose
140
161
connections : 32
141
162
serverScheme : https
142
- certPath : https://raw.githubusercontent.com/aspnet/Benchmarks/refs/heads/main/src/BenchmarksApps/TLS/Kestrel/testCert.pfx
163
+ # [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="This is a dummy cert for testing")]
164
+ certPath : https://raw.githubusercontent.com/aspnet/Benchmarks/refs/heads/main/src/BenchmarksApps/TLS/Certificates/2048/testCert-2048.pfx
165
+ # [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="This is a dummy password for testing")]
143
166
certPwd : testPassword
144
167
sslProtocol : tls12
145
168
146
169
tls-renegotiation-kestrel :
147
170
application :
148
171
job : kestrelServer
149
172
variables :
173
+ certPublicKeyLength : 2048
150
174
mTLS : false
151
175
tlsRenegotiation : true
152
- certValidationConsoleEnabled : false # only for debug purposes
153
176
load :
154
177
job : httpclient
155
178
variables :
156
179
path : /hello-world
157
180
presetHeaders : connectionclose
158
181
connections : 32
159
182
serverScheme : https
160
- certPath : https://raw.githubusercontent.com/aspnet/Benchmarks/refs/heads/main/src/BenchmarksApps/TLS/Kestrel/testCert.pfx
183
+ # [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="This is a dummy cert for testing")]
184
+ certPath : https://raw.githubusercontent.com/aspnet/Benchmarks/refs/heads/main/src/BenchmarksApps/TLS/Certificates/2048/testCert-2048.pfx
185
+ # [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="This is a dummy password for testing")]
161
186
certPwd : testPassword
162
187
sslProtocol : tls12
163
188
@@ -229,4 +254,19 @@ scenarios:
229
254
presetHeaders : connectionclose
230
255
connections : 32
231
256
serverScheme : https
232
- sslProtocol : tls12
257
+ sslProtocol : tls12
258
+
259
+ tls-handshakes-docker-nginx :
260
+ application :
261
+ job : dockerLinuxNginxServer
262
+ buildArguments :
263
+ - CERT_KEY_LENGTH=2048
264
+ load :
265
+ job : httpclient
266
+ variables :
267
+ path : /hello-world
268
+ serverPort : 8080
269
+ presetHeaders : connectionclose
270
+ connections : 32
271
+ serverScheme : https
272
+ sslProtocol : tls12
0 commit comments