Продолжение
вот этого поста.
Разобрался где собака порылась.
Краткая предыстория. Настроили на одном веб-сайтике аутентификацию клиентов по X509-сертификату. При этом наблюдали странные симптомы.
- "Взрослые" FireFox и Chrome - всё ОК.
- Android 8, 11, 12 - стало ОК после того, как мы в клиентский контейнер включили Root CA.
- Android 10 и iOS на iPad не хотели вообще ни в какую. Они не хотели даже выводить окно с выбором сертификата как остальные.
Оказалось всё прозаично. Клиентский сертификат был подписан не напрямую CAшкой, а через промежуточный (Intermediate) сертификат. "Взрослых" браузеров всё устраивало. Мобильные же клиенты требуют выполнения двух условий.
- У них есть полная цепочка доверия, включая и Root CA.
- Сервер отдает клиенту все сертификаты проверки аутентификации включая промежуточные.
Сразу после того, как я nginx-у в файл по ссылке из директивы "ssl_client_certificate" добавил промежуточный сертификат, всё завелось.
Странно всё это. Вообще говоря, какая клиенту разница об какой сертификат сервер будет проверять его дайджест? А вот поди ж ты...