Client certificate auth - моментально 403 Forbidden

Palych
Уже с Приветом
Posts: 13729
Joined: 16 Jan 2001 10:01

Re: Client certificate auth - моментально 403 Forbidden

Post by Palych »

shadow7256 wrote: 21 Jul 2021 16:32
Palych wrote: 21 Jul 2021 05:02 Интересно бы теперь взять какой-нибудь другой сертификат подписанный тем же банком, например от другого сервиса.
И подсунуть в качестве удостоверения личности клиента...
В данном случае Винда скорее всего
...
То есть, проверять работает ли авторизация никто не будет?
shadow7256
Уже с Приветом
Posts: 9402
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Re: Client certificate auth - моментально 403 Forbidden

Post by shadow7256 »

Palych wrote: 21 Jul 2021 17:12
shadow7256 wrote: 21 Jul 2021 16:32
Palych wrote: 21 Jul 2021 05:02 Интересно бы теперь взять какой-нибудь другой сертификат подписанный тем же банком, например от другого сервиса.
И подсунуть в качестве удостоверения личности клиента...
В данном случае Винда скорее всего
...
То есть, проверять работает ли авторизация никто не будет?
проблема была не в авторизации, а в том, что сертификат отвергался операционной системой из за особенностей работы винды с TLS.
User avatar
idle0
Уже с Приветом
Posts: 2846
Joined: 28 Jun 2000 09:01
Location: Milwaukee, WI

Re: Client certificate auth - моментально 403 Forbidden

Post by idle0 »

shadow7256 wrote: 14 Jul 2021 00:07 Уважаемые,

на сервере есть WEB API (self hosted, имплементировано на .NET), которая требует при каждом запросе предьявить валидный Client Certificate.

Но вот какая проблема.

Когда я, с моей машины (А) из браузера пытаюсь вызвать какой то метод из этого API, то браузер мне вываливает окошко с предложением выбрать клиентский сертификат (из того списка сертификатов, что доступны на моей машине). Все четко и правильно. Браузер послал запрос к API, ему пришел ответ что нужен сертификат, он показал мне выбор сертификатов.

Когда я набираю тот же URL в браузере на другой машине (В), то мне сразу же возвращается 403 Forbidden ответ. Никакого диалога с выбором сертификатов я не получаю вообще. :cry:

Если я на стороне сервера (WEB API) отключу требование наличия клиентского сертификата, то я могу запрашивать API с обоих машин без проблем.
Но как только я включаю требование иметь клиентский сертификат, то на все запросы с машины В сразу же получаю 403 Forbidden в ответ.

У меня есть клиентское приложение (тоже на .NET) которое работает с API и в коде в каждом запросе прикладывает сертификат.

Если я запускаю прилоежние с моего компутера, то все в порядке и запрос уходит и обрабатывается сервером.

Как только я запускаю тоже самое приложение на машине В, то в клиентском коде сразу же получаю 403 forbidden ответ.

Получается какая то проблема между машиной В и сервером? Никак не пойму в чем дело..

Пытался Wireshark пронюзхать траффик между В и сервером, но ничего не смог найти.. одни TLS, TCP и UDP пакеты

Если сервер не запрашивает сертификат - то клиент его и не передает

The TLS 1.2 and TLS 1.3 standards clearly describe the sequence of communication inside the TLS handshake. A client certificate can not be send inside the ClientHello since the structure of the ClientHello record does not have a place for it. It is instead sent within a Certificate record, similar to how server certificates are sent. Only a Certificate record from the client is supposed to be sent only after the server explicitly requested it with a CertificateRequest. (see TLS 1.3 spec, sections CertificateRequest, and Certificate for the definition of this behavior)

Вы видите этот CertificateRequest?
moria# show running-config

Return to “Вопросы и новости IT”