Клиентский X509 в Android #2

Apr 06, 2022 22:46


Продолжение вот этого поста.

Разобрался где собака порылась.

Краткая предыстория. Настроили на одном веб-сайтике аутентификацию клиентов по X509-сертификату. При этом наблюдали странные симптомы.
  1. "Взрослые" FireFox и Chrome - всё ОК.
  2. Android 8, 11, 12 - стало ОК после того, как мы в клиентский контейнер включили Root CA.
  3. Android 10 и iOS на iPad не хотели вообще ни в какую. Они не хотели даже выводить окно с выбором сертификата как остальные.

Оказалось всё прозаично. Клиентский сертификат был подписан не напрямую CAшкой, а через промежуточный (Intermediate) сертификат. "Взрослых" браузеров всё устраивало. Мобильные же клиенты требуют выполнения двух условий.
  1. У них есть полная цепочка доверия, включая и Root CA.
  2. Сервер отдает клиенту все сертификаты проверки аутентификации включая промежуточные.

Сразу после того, как я nginx-у в файл по ссылке из директивы "ssl_client_certificate" добавил промежуточный сертификат, всё завелось.

Странно всё это. Вообще говоря, какая клиенту разница об какой сертификат сервер будет проверять его дайджест? А вот поди ж ты...

грабли, безопасность, it, android

Previous post Next post
Up