Как реализовать TLS 1.2 в ASP.Net Core 2.0 - PullRequest
0 голосов
/ 11 января 2019

Сведения о платформе: C #, .Net Core 2.0, WS 2016, IIS и Kestrel в обратном прокси

Мое веб-приложение должно использовать HTTPS и TLS 1.2. Он уже работал нормально с SSL, но этого недостаточно. В Интернете я нашел подробную информацию о правках реестра, необходимых для TLS 1.2 по умолчанию на моем веб-сервере, и внес эти изменения. После этих изменений реестра мой оригинальный код все еще работал. Чтобы принудительно использовать TLS1.2, я добавил следующее в свой UseKestrel () в методе buildwebhost.

options =>
{
    options.Listen(System.Net.IPAddress.Loopback, 443, listenOptions =>
    {
        listenOptions.UseHttps(new HttpsConnectionAdapterOptions { SslProtocols = SslProtocols.Tls12 });
    }
}))

Сейчас сайт выкидывает 502,5. IIS настроен с использованием исходного сертификата, а сайт привязан к порту 443. Мне сказали, что сам сертификат одинаков между SSL и TLS, поэтому мне не нужно получать другой. Когда я пытаюсь отладить код с локального хоста, мой VS возвращает ошибку, говорящую

System.ArgumentException: 'Требуется параметр сертификата сервера.'

Я нашел детали объекта "X509Certificate2" и некоторые другие реализации, в которых автор использует метод загрузки для потоковой передачи этого сертификата из местоположения на сервере, но я не знаю, нужно ли это здесь.

1 Ответ

0 голосов
/ 24 января 2019

Ответ в комментариях к вопросу. Серверу был предоставлен образ, который по умолчанию не включал TLS 1.2, поэтому внесенные нами изменения в реестр действительно требовались, но ничего более

...