У меня настроен Nginx на моем Ubuntu VPS. Сертификат отлично работает на интерфейсных конечных точках (*. html), но у меня возникают проблемы с получением данных из моего ASP. NET Core API из любого клиентского приложения. Например, при попытке извлечь данные с помощью следующего python кода:
import requests
import json
data = {"somevariable" : "someData"}
url='https://myDNS:myPort/myEndpoint'
r = requests.post(url, json=data)
возвращается следующее сообщение об ошибке:
SSLCertVerificationError (1, проверка сертификата [SSL: CERTIFICATE_VERIFY_FAILED] подтверждена не удалось: невозможно получить сертификат локального эмитента (_ssl. c: 1108) '))
Моя цель - связаться с ASP. NET конечными точками, используя Nginx сгенерированный сертификат ( HTTPS) с любого клиента. Я попробовал следующие документы, но ни одна из них не решила мою проблему.
В приложении включена поддержка SSL и Program.cs выглядит следующим образом:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
//webBuilder.UseUrls("http://0.0.0.0:5001");
webBuilder.UseStartup<Startup>();
webBuilder.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5000); //Should listen on https://MyDNS:5000/
});
});
}
Я также использую HttpsRedirection на тот же порт в моем Startup.cs, как показано ниже:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseHttpsRedirection();
//.... rest of configuration
}
public void ConfigureServices(IServiceCollection services)
{
//...
services.AddHttpsRedirection(options =>
{
options.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect;
options.HttpsPort = 5000;
});
//...
}
Я был бы очень благодарен за любой ответ.