Я пытаюсь повторить обычную проверку сертификата для чего-либо, кроме запросов к localhost
public static readonly HttpClient _httpClient = new HttpClient(new HttpClientHandler()
{
AllowAutoRedirect = false,
MaxConnectionsPerServer = int.MaxValue,
UseCookies = false,
ServerCertificateCustomValidationCallback = ValidateLocalhostCertificate
});
private static bool ValidateLocalhostCertificate(HttpRequestMessage arg1, X509Certificate2 arg2, X509Chain arg3, SslPolicyErrors arg4)
{
if (arg1.RequestUri.Host == "127.0.0.1")
{
return true;
}
else
{
// default validation
}
}
Я пишу приложение ASP.NET Core, используя этот ответ для обратногозапросы прокси, сделанные из определенных поддоменов локальным службам (например, 1.mywebsite.com
переходит к 127.0.0.1:1001
, 2.mywebsite.com
переходит к 127.0.0.1:1002
и т.любой другой способ сделать это
Я предполагаю, что client => mywebsite over 443 является безопасным, и единственный «небезопасный» бит с использованием ответа, указанного выше, будет происходить локально на сервере, когда онигнорирует недействительные сертификаты локальных сервисов (которые все работают строго по https, что-то, что я не могу изменить) - если это неверно, поправьте меня!
Я пытался просмотреть исходный код ядра, но я изо всех сил пытаюсь выяснить, как HttpClient обычно проверяет сертификаты