Я застрял с получением аутентификации клиента https для работы с приложением Asp.Net Core, работающим в контейнере докера с Debian. Приложение Asp.Net отлично работает в Windows с аутентификацией клиентов с помощью сертификатов.
Однако, если я запускаю приложение asp.net в контейнере докеров, некоторые клиенты не будут отправлять сертификат клиента, потому что в SSL-рукопожатии сервер отправляет список всех своих доверенных корневых центров сертификации. Затем некоторые клиенты на основе .Net 4.0 фильтруют свои клиентские сертификаты, чтобы он содержал только сертификаты, выпущенные ЦС из этого списка.
Теперь моя проблема в том, что я не устанавливаю корневой ЦС с системой Docker Debian, поэтому мой корневой ЦС находится в списке, отправленном сервером.
Я уже пробовал добавить сертификат в свой файл докеров с помощью
ADD ${source:-my_ca_root.crt} /usr/local/share/ca-certificates/my_ca_root.crt
RUN update-ca-certificates
Но это, кажется, не работает.
Другим вариантом было бы указать серверу не отправлять список доверия сертификатов, но я не смог найти для этого решения.
Приложение Asp.NET Core работает с образом докера "Microsoft/aspnetcore:2.0".
ca-certificates
и посмотреть, какой список ROOT ca он отправляет. Если он пуст, то мы знаем, что корневой ЦС должен быть на системном уровне, если нет, нам нужно найти то, что asp.net использует для своего корневого ЦС. - person Tarun Lalwani   schedule 12.10.2017update-ca-certificates
после удаления сертификатов для подтверждения? Также посмотрите, связано ли это с проблемой github.com/dotnet/corefx/issues/16879 - person Tarun Lalwani   schedule 12.10.2017