netsh http add sslcert ipport = 0.0.0.0: 22224 certhash = 31cf73308a768100d4d32fe6e77638593e68ab57 appid = {a33a711f-c587-44e5-96bc} * 1013cf * dc8
Настройте приложение для прослушивания определенного порта, при этом я прочитал URL-адрес из файла конфигурации при запуске - например,
https://IP:Port и применил его к (vb.net) HttpSelfHostConfiguration ()
Это работает без проблем, и я могу настроить приложения так, как мне нужно (например, настроить порт в файле конфигурации для http для выполнения тестов на сервере интрасети, настроить другой порт в файле конфигурации для производственной средыс https).
Теперь я хочу сделать то же самое с приложением asp.net core 2.1.6 и , похоже, оно работает не так.
Общий сертификат (comodo) установлен в хранилище сертификатов веб-сервера Windows.
Порт 22224 настроен с помощью netsh для https.
Сертификат связан с портом с помощью netsh (сертификат отображается правильно сnetsh http show sslcert ipport = 0.0.0.0: 22224
В Program.cs я добавляю порт для прослушивания с помощью UseUrls:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>() //;
.UseUrls(GV.cURL, "http://localhost:5000");
}
, посредством чего GV.curl содержит https://IP:22224 во время выполнения
Приложение работает нормально (через Интернет), если я настрою его на http -порт (например, http://IP:22222).
ЕслиЯ установил (настроенный) порт https (https://IP:22224), приложение не запускается и выдает сообщение об ошибке:
Невозможно настроить конечную точку HTTPS. Не указан сертификат сервера , и сертификат разработчика по умолчанию не найден.
Информация, которую я нашел в Интернете, сбивает с толку, и кажется, что эта тема «движущаяся цель »(часто изменяет базовую обработку ядра asp.net xx).
Мои выводы на данный момент:
Отрезано« Не указан сертификат сервера ”в сообщении об ошибке указывает, что сертификат должен быть настроен в приложении?
Я нашел пример для указания сертификатав CreateWebHostBuilder с параметрами .useKestrel:
.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5000);
options.Listen(IPAddress.Loopback, 5001, listenOptions =>
{
listenOptions.UseHttps("certificate.pfx", "topsecret");
});
Примечание. В моем случае мне придется изменить 5001 на 22224.
Вопросы:
Нужно ли настраивать публичный сертификат (уже привязанный к порту) также в приложении asp.net core 2.1?
Если да, каков наилучший способ сделать это (пример вышехороший способ)?