Правильный способ загрузки SSL-сертификата, подписанного Intermediate CA в Kestrel .NET Core - PullRequest
3 голосов
/ 05 июня 2019

Я устанавливаю SSL на моем сервере Kestrel Linux с использованием .NET Core 2.1.1.

Сертификат SSL подписан промежуточным CA.

PFX содержит промежуточный и корневой сертификат CA.

Я загружаю файл pfx как объект X509Certificate2 и использую его для сертификата сервера.

Похоже, способ, которым я настроил этопромежуточный ЦС не отправляется как часть рукопожатия, и отправляется только лист (это очень капризно).

return WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseKestrel(options =>
            {
                options.Listen(IPAddress.Any,443, listenOptions =>
                {

                    listenOptions.UseHttps("ssl.pfx", "password123");

                });
            }
            )
        .Build();

Поэтому я выполняю эту команду, и она показывает только лист, но не промежуточный:

openssl s_client -showcerts -connect myserver:443

Я ожидаю, что он будет включать промежуточный CA и лист, как и следовало ожидать, как это:

openssl s_client -showcerts -connect google.com:443

1 Ответ

1 голос
/ 11 июня 2019

Я столкнулся с этим совсем недавно и обнаружил, что серверу (в данном случае debian), на котором размещается веб-служба, требуется явное доверие к промежуточному сертификату в дополнение к корневому сертификату. Без этого он только отправил бы сертификат субъекта, но когда я добавил промежуточное звено непосредственно в траст, он начал работать правильно.

...