Когда я пытаюсь запустить nopCommerce 4.0 локально в VisualStudio с SSL, я получаю ошибку ERR_EMPTY_RESPONSE
.Запуск без HTTPS работает нормально.Я тестирую интеграцию с внешним логином, и мне нужно запустить HTTPS локально, чтобы избежать проблем со смешанным контентом.
Я знаю, что есть несколько SO-сообщений об этом, но все они ведут меня в одно и то же место.Моя последняя попытка основана на этой статье .
В моем файле Startup.cs у меня есть:
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddMvc(
options =>
{
options.SslPort = 55391;
options.Filters.Add(new RequireHttpsAttribute());
}
);
services.AddAntiforgery(
options =>
{
options.Cookie.Name = "_af";
options.Cookie.HttpOnly = true;
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
options.HeaderName = "X-XSRF-TOKEN";
}
);
return services.ConfigureApplicationServices(Configuration);
}
В сертификате.json у меня есть:
{
"certificateSettings": {
"filename": "localhost.pfx",
"password": "secretpassword"
}
}
В Program.cs у меня есть:
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddEnvironmentVariables()
.AddJsonFile("certificate.json", optional: true, reloadOnChange: true)
.AddJsonFile($"certificate.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true, reloadOnChange: true)
.Build();
var certificateSettings = config.GetSection("certificateSettings");
string certificateFileName = certificateSettings.GetValue<string>("filename");
string certificatePassword = certificateSettings.GetValue<string>("password");
var certificate = new X509Certificate2(certificateFileName, certificatePassword);
var host = WebHost.CreateDefaultBuilder(args)
.UseKestrel(options =>
{
options.AddServerHeader = false;
options.Listen(IPAddress.Loopback, 55391, listenOptions =>
{
listenOptions.UseHttps(certificate);
});
options.Listen(IPAddress.Loopback, 55390);
})
.UseStartup<Startup>()
.CaptureStartupErrors(true)
.Build();
host.Run();
}
У меня ASPNETCORE_HTTPS_PORT
установлено в 55391 в настройках моего проекта Nop.Web.
При запуске я получаю ошибку ERR_EMPTY_RESPONSE
.
ЕслиЯ удаляю все параметры HTTPS и просто иду со стандартной настройкой, все работает отлично.
Редактировать: мне нужно запустить этот проект с профилем Nop.Web, поэтому я не могу запустить его с IIS Express и просто получить настройки SSL в свойствах проекта.
Редактировать # 2: Я заметил, что когда я получаю эту ошибку, браузер перенаправляется с https://localhost:55391 на http://localhost:55391 (нет).Я не уверен почему.