diff --git a/AspNetCore.sln b/AspNetCore.sln
index fbf4290fac83..152eadb7737e 100644
--- a/AspNetCore.sln
+++ b/AspNetCore.sln
@@ -9750,22 +9750,6 @@ Global
{09FFBC53-3EFF-45C4-9822-5D66089CD6AD}.Release|x64.Build.0 = Release|Any CPU
{09FFBC53-3EFF-45C4-9822-5D66089CD6AD}.Release|x86.ActiveCfg = Release|Any CPU
{09FFBC53-3EFF-45C4-9822-5D66089CD6AD}.Release|x86.Build.0 = Release|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|arm64.ActiveCfg = Debug|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|arm64.Build.0 = Debug|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|x64.ActiveCfg = Debug|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|x64.Build.0 = Debug|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|x86.ActiveCfg = Debug|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|x86.Build.0 = Debug|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|Any CPU.Build.0 = Release|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|arm64.ActiveCfg = Release|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|arm64.Build.0 = Release|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|x64.ActiveCfg = Release|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|x64.Build.0 = Release|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|x86.ActiveCfg = Release|Any CPU
- {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|x86.Build.0 = Release|Any CPU
{3044DFA5-DE4F-44D8-8DD8-EDF547BE513E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3044DFA5-DE4F-44D8-8DD8-EDF547BE513E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3044DFA5-DE4F-44D8-8DD8-EDF547BE513E}.Debug|arm64.ActiveCfg = Debug|Any CPU
@@ -11171,7 +11155,6 @@ Global
{17F28812-983E-4415-A55D-842DD7EC6887} = {627BE8B3-59E6-4F1D-8C9C-76B804D41724}
{A07D3B13-388B-444F-9E37-DDC0787C4690} = {17F28812-983E-4415-A55D-842DD7EC6887}
{09FFBC53-3EFF-45C4-9822-5D66089CD6AD} = {17F28812-983E-4415-A55D-842DD7EC6887}
- {A1D02CE6-1077-410A-81CB-D4BD500FD765} = {0508E463-0269-40C9-B5C2-3B600FB2A28B}
{3044DFA5-DE4F-44D8-8DD8-EDF547BE513E} = {C445B129-0A4D-41F5-8347-6534B6B12303}
{4BD6F0DB-BE9C-4C54-B52A-D20B88855ED5} = {C445B129-0A4D-41F5-8347-6534B6B12303}
{6CCCF618-2E70-4870-B39F-32C016FE08F0} = {088C37A5-30D2-40FB-B031-D163CFBED006}
diff --git a/src/Middleware/HttpOverrides/test/CertificateForwardingTest.cs b/src/Middleware/HttpOverrides/test/CertificateForwardingTest.cs
index f4e31689e505..ee51bf02a879 100644
--- a/src/Middleware/HttpOverrides/test/CertificateForwardingTest.cs
+++ b/src/Middleware/HttpOverrides/test/CertificateForwardingTest.cs
@@ -230,34 +230,5 @@ public async Task VerifyArrHeaderEncodedCertFailsOnBadEncoding()
c.Request.Headers["X-Client-Cert"] = "OOPS" + Convert.ToBase64String(Certificates.SelfSignedValidWithNoEku.RawData);
});
}
-
- private static class Certificates
- {
- public static X509Certificate2 SelfSignedValidWithClientEku { get; private set; } =
- new X509Certificate2(GetFullyQualifiedFilePath("validSelfSignedClientEkuCertificate.cer"));
-
- public static X509Certificate2 SelfSignedValidWithNoEku { get; private set; } =
- new X509Certificate2(GetFullyQualifiedFilePath("validSelfSignedNoEkuCertificate.cer"));
-
- public static X509Certificate2 SelfSignedValidWithServerEku { get; private set; } =
- new X509Certificate2(GetFullyQualifiedFilePath("validSelfSignedServerEkuCertificate.cer"));
-
- public static X509Certificate2 SelfSignedNotYetValid { get; private set; } =
- new X509Certificate2(GetFullyQualifiedFilePath("selfSignedNoEkuCertificateNotValidYet.cer"));
-
- public static X509Certificate2 SelfSignedExpired { get; private set; } =
- new X509Certificate2(GetFullyQualifiedFilePath("selfSignedNoEkuCertificateExpired.cer"));
-
- private static string GetFullyQualifiedFilePath(string filename)
- {
- var filePath = Path.Combine(AppContext.BaseDirectory, filename);
- if (!File.Exists(filePath))
- {
- throw new FileNotFoundException(filePath);
- }
- return filePath;
- }
- }
-
}
}
diff --git a/src/Middleware/HttpOverrides/test/Microsoft.AspNetCore.HttpOverrides.Tests.csproj b/src/Middleware/HttpOverrides/test/Microsoft.AspNetCore.HttpOverrides.Tests.csproj
index 0a5a370b79a0..c34f7f8600c2 100644
--- a/src/Middleware/HttpOverrides/test/Microsoft.AspNetCore.HttpOverrides.Tests.csproj
+++ b/src/Middleware/HttpOverrides/test/Microsoft.AspNetCore.HttpOverrides.Tests.csproj
@@ -5,6 +5,7 @@
+
diff --git a/src/Security/Authentication/test/CertificateTests.cs b/src/Security/Authentication/test/CertificateTests.cs
index 25c982a7c61f..8756730f45d9 100644
--- a/src/Security/Authentication/test/CertificateTests.cs
+++ b/src/Security/Authentication/test/CertificateTests.cs
@@ -24,7 +24,7 @@
namespace Microsoft.AspNetCore.Authentication.Certificate.Test
{
- public class ClientCertificateAuthenticationTests
+ public class ClientCertificateAuthenticationTests : LoggedTest
{
[Fact]
@@ -159,7 +159,8 @@ public async Task VerifyValidSelfSignedWithServerFailsPurposeValidationIsOffButS
Assert.Equal(HttpStatusCode.Forbidden, response.StatusCode);
}
- [Fact]
+ [ConditionalFact]
+ [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/32813", Queues = "All.Ubuntu")]
public async Task VerifyExpiredSelfSignedFails()
{
using var host = await CreateHost(
@@ -194,7 +195,7 @@ public async Task VerifyExpiredSelfSignedPassesIfDateRangeValidationIsDisabled()
}
[ConditionalFact]
- [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/32813")]
+ [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/32813", Queues = "All.Ubuntu")]
public async Task VerifyNotYetValidSelfSignedFails()
{
using var host = await CreateHost(
@@ -787,7 +788,7 @@ public async Task VerifyValidationResultNeverCachedAfter30Min(bool cache)
Assert.Equal(laterExpected, count.First().Value);
}
- private static async Task CreateHost(
+ private async Task CreateHost(
CertificateAuthenticationOptions configureOptions,
X509Certificate2 clientCertificate = null,
Func handler = null,
@@ -846,6 +847,8 @@ private static async Task CreateHost(
})
.ConfigureServices(services =>
{
+ AddTestLogging(services);
+
AuthenticationBuilder authBuilder;
if (configureOptions != null)
{
@@ -932,43 +935,5 @@ private static async Task CreateHost(
return Task.CompletedTask;
}
};
-
- private static class Certificates
- {
- public static X509Certificate2 SelfSignedPrimaryRoot { get; private set; } =
- new X509Certificate2(GetFullyQualifiedFilePath("validSelfSignedPrimaryRootCertificate.cer"));
-
- public static X509Certificate2 SignedSecondaryRoot { get; private set; } =
- new X509Certificate2(GetFullyQualifiedFilePath("validSignedSecondaryRootCertificate.cer"));
-
- public static X509Certificate2 SignedClient { get; private set; } =
- new X509Certificate2(GetFullyQualifiedFilePath("validSignedClientCertificate.cer"));
-
- public static X509Certificate2 SelfSignedValidWithClientEku { get; private set; } =
- new X509Certificate2(GetFullyQualifiedFilePath("validSelfSignedClientEkuCertificate.cer"));
-
- public static X509Certificate2 SelfSignedValidWithNoEku { get; private set; } =
- new X509Certificate2(GetFullyQualifiedFilePath("validSelfSignedNoEkuCertificate.cer"));
-
- public static X509Certificate2 SelfSignedValidWithServerEku { get; private set; } =
- new X509Certificate2(GetFullyQualifiedFilePath("validSelfSignedServerEkuCertificate.cer"));
-
- public static X509Certificate2 SelfSignedNotYetValid { get; private set; } =
- new X509Certificate2(GetFullyQualifiedFilePath("selfSignedNoEkuCertificateNotValidYet.cer"));
-
- public static X509Certificate2 SelfSignedExpired { get; private set; } =
- new X509Certificate2(GetFullyQualifiedFilePath("selfSignedNoEkuCertificateExpired.cer"));
-
- private static string GetFullyQualifiedFilePath(string filename)
- {
- var filePath = Path.Combine(AppContext.BaseDirectory, filename);
- if (!File.Exists(filePath))
- {
- throw new FileNotFoundException(filePath);
- }
- return filePath;
- }
- }
}
}
-
diff --git a/src/Security/Authentication/test/Microsoft.AspNetCore.Authentication.Test.csproj b/src/Security/Authentication/test/Microsoft.AspNetCore.Authentication.Test.csproj
index bd8e2eaa3b03..a65c8ad9271f 100644
--- a/src/Security/Authentication/test/Microsoft.AspNetCore.Authentication.Test.csproj
+++ b/src/Security/Authentication/test/Microsoft.AspNetCore.Authentication.Test.csproj
@@ -13,6 +13,8 @@
+
+
PreserveNewest
diff --git a/src/Shared/test/Certificates/Certificates.cs b/src/Shared/test/Certificates/Certificates.cs
new file mode 100644
index 000000000000..8124e9cdf0f1
--- /dev/null
+++ b/src/Shared/test/Certificates/Certificates.cs
@@ -0,0 +1,113 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using System.Security.Cryptography;
+using System.Security.Cryptography.X509Certificates;
+
+public static class Certificates
+{
+ private static string ServerEku = "1.3.6.1.5.5.7.3.1";
+ private static string ClientEku = "1.3.6.1.5.5.7.3.2";
+
+ static Certificates()
+ {
+ DateTimeOffset now = DateTimeOffset.UtcNow;
+
+ SelfSignedPrimaryRoot = MakeCert(
+ "CN=Valid Self Signed Client EKU,OU=dev,DC=idunno-dev,DC=org",
+ ClientEku,
+ now);
+
+ SignedSecondaryRoot = MakeCert(
+ "CN=Valid Signed Secondary Root EKU,OU=dev,DC=idunno-dev,DC=org",
+ ClientEku,
+ now);
+
+ SelfSignedValidWithServerEku = MakeCert(
+ "CN=Valid Self Signed Server EKU,OU=dev,DC=idunno-dev,DC=org",
+ ServerEku,
+ now);
+
+ SelfSignedValidWithClientEku = MakeCert(
+ "CN=Valid Self Signed Server EKU,OU=dev,DC=idunno-dev,DC=org",
+ ClientEku,
+ now);
+
+ SelfSignedValidWithNoEku = MakeCert(
+ "CN=Valid Self Signed No EKU,OU=dev,DC=idunno-dev,DC=org",
+ eku: null,
+ now);
+
+ SelfSignedExpired = MakeCert(
+ "CN=Expired Self Signed,OU=dev,DC=idunno-dev,DC=org",
+ eku: null,
+ now.AddYears(-2),
+ now.AddYears(-1));
+
+ SelfSignedNotYetValid = MakeCert(
+ "CN=Not Valid Yet Self Signed,OU=dev,DC=idunno-dev,DC=org",
+ eku: null,
+ now.AddYears(2),
+ now.AddYears(3));
+
+ SignedClient = MakeCert(
+ "CN=Valid Signed Client,OU=dev,DC=idunno-dev,DC=org",
+ ClientEku,
+ now);
+
+ }
+
+ private static readonly X509KeyUsageExtension s_digitalSignatureOnlyUsage =
+ new X509KeyUsageExtension(X509KeyUsageFlags.DigitalSignature, true);
+
+ private static X509Certificate2 MakeCert(
+ string subjectName,
+ string eku,
+ DateTimeOffset now)
+ {
+ return MakeCert(subjectName, eku, now, now.AddYears(5));
+ }
+
+ private static X509Certificate2 MakeCert(
+ string subjectName,
+ string eku,
+ DateTimeOffset notBefore,
+ DateTimeOffset notAfter)
+ {
+ using (var key = RSA.Create(2048))
+ {
+ CertificateRequest request = new CertificateRequest(
+ subjectName,
+ key,
+ HashAlgorithmName.SHA256,
+ RSASignaturePadding.Pkcs1);
+
+ request.CertificateExtensions.Add(s_digitalSignatureOnlyUsage);
+
+ if (eku != null)
+ {
+ request.CertificateExtensions.Add(
+ new X509EnhancedKeyUsageExtension(
+ new OidCollection { new Oid(eku, null) }, false));
+ }
+
+ return request.CreateSelfSigned(notBefore, notAfter);
+ }
+ }
+
+ public static X509Certificate2 SelfSignedPrimaryRoot { get; private set; }
+
+ public static X509Certificate2 SignedSecondaryRoot { get; private set; }
+
+ public static X509Certificate2 SignedClient { get; private set; }
+
+ public static X509Certificate2 SelfSignedValidWithClientEku { get; private set; }
+
+ public static X509Certificate2 SelfSignedValidWithNoEku { get; private set; }
+
+ public static X509Certificate2 SelfSignedValidWithServerEku { get; private set; }
+
+ public static X509Certificate2 SelfSignedNotYetValid { get; private set; }
+
+ public static X509Certificate2 SelfSignedExpired { get; private set; }
+}
diff --git a/src/Shared/test/Certificates/selfSignedNoEkuCertificateExpired.cer b/src/Shared/test/Certificates/selfSignedNoEkuCertificateExpired.cer
deleted file mode 100644
index 81b6326d6f1e..000000000000
Binary files a/src/Shared/test/Certificates/selfSignedNoEkuCertificateExpired.cer and /dev/null differ
diff --git a/src/Shared/test/Certificates/selfSignedNoEkuCertificateNotValidYet.cer b/src/Shared/test/Certificates/selfSignedNoEkuCertificateNotValidYet.cer
deleted file mode 100644
index 19ee0adcef1b..000000000000
Binary files a/src/Shared/test/Certificates/selfSignedNoEkuCertificateNotValidYet.cer and /dev/null differ
diff --git a/src/Shared/test/Certificates/validSelfSignedClientEkuCertificate.cer b/src/Shared/test/Certificates/validSelfSignedClientEkuCertificate.cer
deleted file mode 100644
index db4bb5b90a07..000000000000
Binary files a/src/Shared/test/Certificates/validSelfSignedClientEkuCertificate.cer and /dev/null differ
diff --git a/src/Shared/test/Certificates/validSelfSignedNoEkuCertificate.cer b/src/Shared/test/Certificates/validSelfSignedNoEkuCertificate.cer
deleted file mode 100644
index 2be2a46d7992..000000000000
Binary files a/src/Shared/test/Certificates/validSelfSignedNoEkuCertificate.cer and /dev/null differ
diff --git a/src/Shared/test/Certificates/validSelfSignedPrimaryRootCertificate.cer b/src/Shared/test/Certificates/validSelfSignedPrimaryRootCertificate.cer
deleted file mode 100644
index a7420c8493b0..000000000000
--- a/src/Shared/test/Certificates/validSelfSignedPrimaryRootCertificate.cer
+++ /dev/null
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDPTCCAiWgAwIBAgIQTmWeCzG8SbRJ0y+osLWwDjANBgkqhkiG9w0BAQsFADAp
-MScwJQYDVQQDDB5WYWxpZCBTZWxmIFNpZ25lZCBQcmltYXJ5IFJvb3QwHhcNMjAw
-MTIxMDAwMDAwWhcNNDUwMTIxMDAwMDAwWjApMScwJQYDVQQDDB5WYWxpZCBTZWxm
-IFNpZ25lZCBQcmltYXJ5IFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQDMK6v6HsJ19iRlXIRQVBJiy9xnJWBddLjm+2RRkyiiffEitBExiXVyrQ8L
-DlegQQH3oJR0xgXwisJctjpHHz54dfbw5LwC9j9EVtu/UgDgK4lo6X3WLNYMJ1pX
-xxjGfXcyzGGhcI0KATlyWhWgOrZNFzE+v0KY/LtZvcZ290Y4X7MQLge+V/09Lohx
-pj6vsHkpoK8tD8ksJp+O8jk45TXTxs4yo8BRXbIv0oMmuZ9+gVkiaGurCCe/o+nw
-vjEQre9oKNFI9KOgen6l1152BVQaXMDd22vemGIz738Scl9kcBQhy1D0dPuL6QV3
-rR8HoNG3i0cuYxB4xgFF5GY2fhQBAgMBAAGjYTBfMA4GA1UdDwEB/wQEAwIBhjAd
-BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDwYDVR0TAQH/BAUwAwEB/zAd
-BgNVHQ4EFgQU/cAC4CkVEtEj2UCYMVS/mlFCdBAwDQYJKoZIhvcNAQELBQADggEB
-AInTuEG8Kv2aWy7MJg/N/AvEmC7USMgTceFY+bKhVogYCE9m2VAa4Tz5DEEJwYQV
-IBnEamQN1eWP/R7dxcg+gIck8TevZC6r7wKMUATCcn9Ti0I0Hxdplts9+YIksJJ7
-GbgyPS3UWnXl2D0374KrqTKSRjEXPOzaNyJ0HB4Pr9bibuSZ6Qc0gSltz7xOPFYS
-7cedTqpABJXF6hZM7tDsxPfXmBHDy2sU84yXTQQghmU5S7fLWgy3so4g/DUqxffS
-hmYPagc9DsmRGc2CCZz8IHlVc7byZ/NF4FgqB3IATbqYBAw4S/RyKHfWpURie2hC
-OtYLcOTzVJG4uD3FGxyXP1k=
------END CERTIFICATE-----
diff --git a/src/Shared/test/Certificates/validSelfSignedServerEkuCertificate.cer b/src/Shared/test/Certificates/validSelfSignedServerEkuCertificate.cer
deleted file mode 100644
index 823000d4a147..000000000000
Binary files a/src/Shared/test/Certificates/validSelfSignedServerEkuCertificate.cer and /dev/null differ
diff --git a/src/Shared/test/Certificates/validSignedClientCertificate.cer b/src/Shared/test/Certificates/validSignedClientCertificate.cer
deleted file mode 100644
index a8034b05a8b9..000000000000
--- a/src/Shared/test/Certificates/validSignedClientCertificate.cer
+++ /dev/null
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDTTCCAjWgAwIBAgIQaaZ/qIdm4K5JhFdDzzj53DANBgkqhkiG9w0BAQsFADAm
-MSQwIgYDVQQDDBtWYWxpZCBTaWduZWQgU2Vjb25kYXJ5IFJvb3QwHhcNMjAwMTIx
-MDAwMDAwWhcNMjIwMTIxMDAwMDAwWjAeMRwwGgYDVQQDDBNWYWxpZCBTaWduZWQg
-Q2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu3dVA8q1GewW
-i1K0Pw0gKqgv92RrX3JI6tTiLbU6FBpFdV63b1M3jgFhUSXJi7L8A/dxh2HwvKBJ
-p+4KW7V+aXQXOY8iShQwrIud5IExFdtEjyGVtfFSvfYmDgbfjFKIGswxsLenlfEt
-7mp303GH99JVFql1n7S+bib79vKkrjFBqixhnXisXjNlBlfH6kRBYiwQ1Gc5oyib
-fZQkfakXo896UwIvQjc0W27c0tiGY6xyGLSesLih2yECADiGa+cc5rnRc7R9/IMB
-N7o5gLpbe71WBopI1uq1VSuXwH9xy0bq307dZEMaX0b4SqhkuQHsBVtOV1mYAskE
-K3W8VUZy7QIDAQABo38wfTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYB
-BQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUx9BZtKX7
-/z2mmoO2Ec127GkibsAwHQYDVR0OBBYEFDmtlIR/fVwtDseOG/NNQ/QEv3/PMA0G
-CSqGSIb3DQEBCwUAA4IBAQBQMhsmlwF5JKEkfay7uLCH9IrJZGk1ZDxK/qcVaOk5
-mQ4IcCBq+Wp7Hg/D92b5diwlkXJDrYZZ7OHSEcD/PrxUKyZkoBQIvlNKDgmjp0wV
-lXYUISZHaXbWZ0XNFAS0KyqoLZ8c2xmhuI21L3hyOoRcoqKleO1kzYfb2seBaRHk
-Iu4la0opKGFoI/o7gC9uLrcizpj3SoPF9+vJz/FJmeBbKzKe1zA479a74tjfOODy
-LZVbsGDhKRQ02GftFqXRl257hVX+6etQiOePj7S++R1B/QXRjvKrOTMs/NpMLAeK
-8uWXSx+boL/8j/3u+65Udh614C5dXSrgDjMGJ7/OchC1
------END CERTIFICATE-----
diff --git a/src/Shared/test/Certificates/validSignedSecondaryRootCertificate.cer b/src/Shared/test/Certificates/validSignedSecondaryRootCertificate.cer
deleted file mode 100644
index ef31f31a98da..000000000000
--- a/src/Shared/test/Certificates/validSignedSecondaryRootCertificate.cer
+++ /dev/null
@@ -1,21 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDXTCCAkWgAwIBAgIQE2HFYAdh7b5NSBsomRG9cjANBgkqhkiG9w0BAQsFADAp
-MScwJQYDVQQDDB5WYWxpZCBTZWxmIFNpZ25lZCBQcmltYXJ5IFJvb3QwHhcNMjAw
-MTIxMDAwMDAwWhcNMzUwMTIxMDAwMDAwWjAmMSQwIgYDVQQDDBtWYWxpZCBTaWdu
-ZWQgU2Vjb25kYXJ5IFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCw1Wvr8SeMdXM0ZMN3/NyZhGzXC/IcqJyI1tM1IQNpO9OxJWDkfxGh14ORRZ3f
-4pTdXOXRCcPYxHk8d3kuH9EEo78WRrLV4XHw31vGrQkHAPn3ZMl/Qre1mYvzkKbn
-DIpScfPYMuqydOvx1YSsTP2G37pNszOAXTkHPPH9smTo/W7Dv/1mnroAru/FU+Hv
-zOMqNirIz1EpCEopLeBS41lcohyuCMzHPKJJZOnNbV3wV3AnpEriRLQVNO9WiaGs
-Nwj8ffai9M4vncRQ9wLK866lx6iA7istjod9hourKQWC1284pv+RLtIeJaGrpXkV
-mSbk9ebabz1fPC2/WgPtd1JVAgMBAAGjgYMwgYAwDgYDVR0PAQH/BAQDAgGGMB0G
-A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAPBgNVHRMBAf8EBTADAQH/MB8G
-A1UdIwQYMBaAFP3AAuApFRLRI9lAmDFUv5pRQnQQMB0GA1UdDgQWBBTH0Fm0pfv/
-Paaag7YRzXbsaSJuwDANBgkqhkiG9w0BAQsFAAOCAQEAT5fEUkVP3Allay2ODcjQ
-GzM135mV718DS84B4bVDBWr+CW9i89bzYgRZgClTABqddotHEqmLEan/bV4suBSt
-QuACy7m39Q8kj/S/ydBhvHx9fxqWnAsacQ+fuAPviBQ11UZB19zWj1zikw1/Xfow
-V9OIf4gYtY2aBPyygWN3HwpszhJWQIuFGl4rwqAxli7Wp2eUBXxDtYBHAscsclG4
-1rduhiV5eUZXZ11mbA7KBH9XwWKoFpRza049I0WC+V0PWqlK4H4P0QzCWUlXmTC8
-kN04cnPtyciOlP9J3Uro5xTXaDC0Cge82JmRxnCovGKGBEdjIxMC4nbPB4emmcth
-BA==
------END CERTIFICATE-----
diff --git a/src/Testing/src/xunit/SkipOnHelixAttribute.cs b/src/Testing/src/xunit/SkipOnHelixAttribute.cs
index a9a6b2fafccf..803456e89f63 100644
--- a/src/Testing/src/xunit/SkipOnHelixAttribute.cs
+++ b/src/Testing/src/xunit/SkipOnHelixAttribute.cs
@@ -57,6 +57,11 @@ private bool ShouldSkip()
return true;
}
+ if (Queues.Contains("All.Ubuntu") && targetQueue.StartsWith("ubuntu", StringComparison.OrdinalIgnoreCase))
+ {
+ return true;
+ }
+
return Queues.ToLowerInvariant().Split(';').Contains(targetQueue);
}