Имею Ubuntu и установленный dotnet core 2. Создал проект asp.net. Пытаюсь запустить его: dotnet run. На что мне ругается:
Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found.
To generate a developer certificate run 'dotnet dev-certs https'. To trust the certificate (Windows and macOS only) run 'dotnet dev-certs https --trust'.
Во первых мне не совсем понятно зачем ему вообще в дебаг-моде понадобился https? Во вторых я пытаюсь запустить dotnet dev-certs https и ловлю: There was an error saving the HTTPS developer certificate to the current user personal certificate store..
При этом если запускать эту команду с sudo то сертификат генерируется и потом, опять же с sudo dotnet run - запускается все ок. Так что и было задумано? Почему я не могу без sudo проект запустить? Может прав на доступ какой-нибудь папке не хватает? Так скажите куда и каких прав раздать - я сделаю.
Видимо для net-core приложения, которое хостится на kestrel указан https endpoint. Кестрел не сможет стартовать tls-эндпоинт из-за отсутствия сертификата (net core генерит self-signed сертификаты и закрывает ими https-endpoint, но они должны быть доверенными в системе). Выходов несколько: 1) Убрать https binding для приложения (либо в startup приложения, либо через env. Variable для kestrel ASPNETCORE_URLS) 2) Установить self-signed certificate в операционную систему
Подробнее можно прочесть тут https://docs.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-2.2&tabs=visu
Продвижение своими сайтами как стратегия роста и независимости