То есть, проверять работает ли авторизация никто не будет?shadow7256 wrote: 21 Jul 2021 16:32В данном случае Винда скорее всегоPalych wrote: 21 Jul 2021 05:02 Интересно бы теперь взять какой-нибудь другой сертификат подписанный тем же банком, например от другого сервиса.
И подсунуть в качестве удостоверения личности клиента...
...
Client certificate auth - моментально 403 Forbidden
-
- Уже с Приветом
- Posts: 13729
- Joined: 16 Jan 2001 10:01
Re: Client certificate auth - моментально 403 Forbidden
-
- Уже с Приветом
- Posts: 9402
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: Client certificate auth - моментально 403 Forbidden
проблема была не в авторизации, а в том, что сертификат отвергался операционной системой из за особенностей работы винды с TLS.Palych wrote: 21 Jul 2021 17:12То есть, проверять работает ли авторизация никто не будет?shadow7256 wrote: 21 Jul 2021 16:32В данном случае Винда скорее всегоPalych wrote: 21 Jul 2021 05:02 Интересно бы теперь взять какой-нибудь другой сертификат подписанный тем же банком, например от другого сервиса.
И подсунуть в качестве удостоверения личности клиента...
...
-
- Уже с Приветом
- Posts: 2846
- Joined: 28 Jun 2000 09:01
- Location: Milwaukee, WI
Re: Client certificate auth - моментально 403 Forbidden
shadow7256 wrote: 14 Jul 2021 00:07 Уважаемые,
на сервере есть WEB API (self hosted, имплементировано на .NET), которая требует при каждом запросе предьявить валидный Client Certificate.
Но вот какая проблема.
Когда я, с моей машины (А) из браузера пытаюсь вызвать какой то метод из этого API, то браузер мне вываливает окошко с предложением выбрать клиентский сертификат (из того списка сертификатов, что доступны на моей машине). Все четко и правильно. Браузер послал запрос к API, ему пришел ответ что нужен сертификат, он показал мне выбор сертификатов.
Когда я набираю тот же URL в браузере на другой машине (В), то мне сразу же возвращается 403 Forbidden ответ. Никакого диалога с выбором сертификатов я не получаю вообще.![]()
Если я на стороне сервера (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