Как настроить https для приложения UWP Desktop Bridge, размещающего PWA через сервер Kestrel

У меня есть настольное мостовое приложение, которое использует рабочую службу для размещения PWA и WebAPI с Kestrel через https.

Пользователь запускает работника и переходит к службе из ff/chrome/edge.

Это отлично работает в разработке, так как на машине разработки установлен доверенный сертификат.

Однако, когда я упаковываю его и развертываю на тестовой машине, сертификата нет, и приложение вылетает.

Итак, как лучше всего это сделать?

Опции

  • Связать сертификат с приложением, установить его в локальном хранилище контейнеров? Как это будет работать с браузером, который не будет доверять сертификату, поскольку он не установлен в контексте пользователей браузера?
  • Купите сертификат ЦС. Как я буду его распространять?
  • Доверенные сертификаты Magic UWP, которые я могу добавить в пустельгу?

person Anthony Johnston    schedule 25.07.2020    source источник
comment
Я нашел это https://dev.to/danielkun/where-is-https-for-iot-49ao полезно   -  person Anthony Johnston    schedule 26.07.2020
comment
И это security.stackexchange.com/questions/121163/   -  person Anthony Johnston    schedule 26.07.2020
comment
И этот letsencrypt.org/docs/certificates-for-localhost   -  person Anthony Johnston    schedule 26.07.2020


Ответы (1)


Итак, кажется, вы не можете

В 2015 году сертификаты не могут быть выданы на адрес IPv4 или IPv6 и должны быть полным доменным именем с общедоступным доменом верхнего уровня.

TLS — это не только шифрование, но и идентификация, частные IP-адреса не могут быть публично идентифицированы

А для работы PWA нужен https, так что варианты..

  1. Самоподписанный сертификат, которому нельзя доверять и который показывает пользователю неприятное сообщение
  2. Публично разместите PWA и сертифицируйте этот домен, а затем перезвоните на петлевой адрес 127.0.0.1 через http, чтобы связаться с работающим рабочим процессом, это считается безопасным. Я сделал это, и это работает, но это означает, что мое приложение может общаться только с пользователем на той же машине.

Есть и другие варианты, которые требуют от вас контроля над сетевым DNS, чего у меня не будет.

person Anthony Johnston    schedule 27.07.2020