grpc-dotnet против C-core grpc для .net - PullRequest
0 голосов
/ 07 октября 2019

ранее я использовал grpc для .net core 2.x, который теперь известен как C-core grpc, чтобы отличаться от новой версии .net core 3. Мне нравится, как новый grpc может компилировать и генерировать классы-заглушки клиент / сервер из прототипов в VS2019 вместо pf, когда нужно получить инструменты grpc из папки пакетов, вручную скомпилировав их для C # для генерации классов-заглушек клиент / серверзатем импортировать в VS. это чище с новой версией grpc. Однако, используя C-core grpc с основным веб-API asp.net, у меня есть несколько вопросов о новом grpc-dotnet:

  1. в C-core grpc,Сертификаты SSL / TLS используют формат * .pem. Я использовал openSSL для генерации pems открытого / закрытого ключа следующим образом: "openssl req -x509 -newkey rsa: 4096 -keyout private.pem -out public.pem -days 365 -nodes -subj / CN = <имя машины>",Затем на стороне сервера я использую SslServerCredentials для его настройки, а на стороне клиента использую SslCredentials для его настройки. Я видел, как это сделать на стороне клиента для нового grpc-dotnet, который не сильно отличается от старого, но серверная сторона нового grpc-dotnet теперь действительно отличается с помощью конфигурации kestrel. Я не знаю, как это сделать. Может кто-нибудь, пожалуйста, просветите меня об этом? Пример Certifier из github использует файл pfx. Поддерживаются ли файлы pem-ключа в новом grpc?

  2. новый grpc-dptmet ises lestrel сейчас и, похоже, подразумевает, что он использует тот же порт, что и веб-приложение,за исключением того, что трафик http2 будет направляться на него, а http1.1 будет обрабатываться веб-приложением. Теперь можно настроить grpc для использования другого порта вместо того, что используется веб-приложением, а также использовать другой сертификат SSL / TLS (файлы * .pem, как указано выше) вместо того, что настроено в IIS?

был бы признателен, если бы кто-то мог просветить меня по этим вопросам. большое Вам спасибо. :)

1 Ответ

0 голосов
/ 11 октября 2019

Вопрос 1: Способ .pem + .key, используемый Grpc.Core, в настоящее время не поддерживается grpc-dotnet, но разница только в допустимом формате ключа. Нетрудно преобразовать части .pem и .key в один файл .pfx с помощью инструментов командной строки openssl (на самом деле, здесь вы можете указать точную команду, которую вы можете использовать: https://github.com/grpc/grpc-dotnet/tree/master/testassets/Certs/InteropTests)

Вопрос 2: Сgrpc-dotnet, вы можете совместно использовать один и тот же порт для трафика grpc и http, или вы можете предоставить два разных порта - по одному для каждого из протоколов. Точные настройки для достижения этого я не уверен на 100%, но это должно быть выполнимоотносительно легко.

...