#c# #asp.net-core #ssl #raspberry-pi #console-application
Вопрос:
Я написал консольное приложение .NET Core 5, которое, помимо прочего, имеет веб-API. Когда я запускаю его на своем компьютере с Windows 10, я могу получить доступ к API как из браузера, так и из почтальона.
Я установил его на Raspberry PI под управлением операционной системы Raspberry PI. Запускается консольное приложение и запускается API. Но когда я пытаюсь перейти к нему из браузера или почтальона, я получаю сообщение об ошибке:
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Чтобы создать API, у меня есть следующий код:
public static IWebHost BuildWebHost( string[] args ) =>
WebHost.CreateDefaultBuilder( args ).UseKestrel( options =>
{
options.Listen( IPAddress.Parse( args[ 0 ] ), int.Parse( args[ 1 ] ), listenOptions =>
{
listenOptions.UseHttps( MY_PFX_FILE, MY_CERT_PASS );
} );
} )
.UseStartup<StartupApi>()
.Build();
args[0] в настоящее время является IP-адресом компьютера, на котором запущен API, а args[1] является портом.
Как я уже сказал, это отлично работает, когда он работает в Windows. Он выходит из строя только тогда, когда он работает на PI.
Ответ №1:
Я решил эту проблему.
Это оказался самозаверяющий сертификат, который я использовал. Это был pfx, который мы использовали для версии консольного приложения, которое мы запускали в Windows. На частного детектива это не подействовало. Я сгенерировал новый сертификат ss, и он отлично сработал.