gRP C Сервер, развернутый в контейнере, не может установить sh SSL-соединение - PullRequest
1 голос
/ 16 июня 2020

Я пытаюсь развернуть простой сервер grp c, написанный на ядре asp. net. Настройки Kestrel:

Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.ConfigureKestrel(c =>
                {
                    c.Listen(IPAddress.Any, 8001);
                    c.ConfigureHttpsDefaults(https =>
                    {
                        https.ServerCertificate = new X509Certificate2("MyDemo.gRPC.pfx", "Pa55word");
                    });
                })
                .UseStartup<Startup>();
            });

Я создал образ docker и развернул его в экземпляре контейнера Azure и открыл порт 8001. Когда я использую незащищенный канал для вызова сервера с клиента , Я получаю успешный ответ, т.е.

AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
using var channel = GrpcChannel.ForAddress("http://01.02.3.04:8001");

заставляет сервер отвечать. Однако, когда я пытаюсь использовать безопасный канал и использовать https, я получаю исключение

Ошибка при запуске вызова gRP C. HttpRequestException: не удалось установить SSL-соединение, см. Внутреннее исключение. IOException: рукопожатие не удалось из-за неожиданного формата пакета.

Я предполагаю, что это как-то связано с моими настройками Kestrel, может ли кто-нибудь увидеть мою проблему?

...