Pull to refresh
0
0
Send message

@Drag13, не понял почему локально "плохой" код EF, так хорошо отрабатывал по сравнению с тем же плохим кодом на Azure.

@iakimov

Очень хорошие примеры и целостное изложение основ, спасибо!

Появились вопросы по ходу прочтения. Клиент и сервер тут похоже на одной машине, поэтому хотелось бы понимать какой именно сертификат применен для каждого процесса валидации, а какой не применен. Возможно это очевидно опытным, но у меня остались сомнения.

  1. Процесс проверки сертификата клиента сервером.

Давайте посмотрим, как заставить сервер требовать от клиента сертификат. Для этого придётся лишь немного изменить его код:

В примере, который следует за этим текстом, фигурирует certificate, как я понял это серверный для https со стороны сервера и к валидации клиента отношения не имеет. То есть его можно даже откинуть. Главное тут это присвоение:

connectionOptions.ClientCertificateMode = ClientCertificateMode.RequireCertificate;

? Но как мы проверяем что клиентский сертификат верный если в коде сервера он не фигурирует? Важно ли устанавливать этот клиентский сертификат на стороне сервера?

2. Процесс проверки сертификата сервера клиентом.

Тут браузер/HttpClient клиента смотрит на серверный сертификат который пришел от сервера. Происходит не явная валидация(которую мы не прописываем руками). Для этой валидации достаточно только сертификата который пришел? или все же важно что серверный сертификат установлена на машине клиента и пришлый сравнивается с установленным? Важно ли загружать серверный сертификат на стороне клиента? Как вы писали, браузеры устанавливают базовые сертификаты при установке.

3. Можно ли описать специфику установки сертификатов если клиент и сервер разнесены по разным машинам? Есть ли тут особенности установки сертификатов в случае? Казалось что на клиент пойдет другого формата сертификат (.pfx, .cer, точно не помню что и как).

4. Как я понял единственная польза создавать самоподписные сертификаты для локальной проверки работы приложения с HTTPS перед тем как отдавать его дальше на деплой (запустилось/упало при любом https запросе). Или продемонстрировать работу HTTPS другим членам команды, для этого наверно и стоит разнести клиент и сервер при установке сертификата. Или есть другие полезные сценарии?

5. Есть примеры использования клиентских сертификатов? Привык только к проверкам серверных браузером, другое в голову не приходит.

К статье больше вопросов нет.

А вообще было бы не плохо и вторую часть написать, так как тут еще есть некоторые пробелы для полного раскрытия темы "Использование сертификатов в ASP.NET Core". Даже после прочтения, я все еще не уверенный пользователь сертификатов. Если у кого хватит сил, то могу набросить пунктов на будущее:

  • Можно ли устанавливать сертификаты на веб сервер типа IIS или nginx, в чем плюсы и минусы такого подхода? Можно ли забить на проверки сертификатов из кода ASP.NET Core или тут есть некий симбиоз между подходами? не будет ли ситуаций когда проверяются разные сертификаты из кода и на уровне веб сервера или что происходит повторная проверка сертификата? Как договариваться Dev и DevOps/админам в этих подходах?

  • Типы сертификатов. Или из кода интересуют только .pfx?

  • Установка сертификатов на разных OS. Зависит ли код от платформы?

  • Сценарии генерации прод сертификатов. Особенности для клиентских сертификатов и их распространение.

  • Если у нашего сервиса много инстансов на разных машинах, то устанавливаем на всех копию одного сертификата?

Information

Rating
Does not participate
Registered
Activity