Я хотел бы управлять окнами всплывающих окон сертификата вручную. Например, если пользователь хочет войти в систему с клиентским сертификатом, я предлагаю окно выбора сертификата; Если он хочет войти в систему с именем пользователя/паролем. Система впустила его без проверки его сертификата.Есть ли способ управлять всплывающим окном выбора браузера вручную?
ответ
Нет стандартных API (или нестандартных, что я знаю) для управления этим с помощью JavaScript или чего-то подобного.
Единственное решение, о котором я могу думать, это иметь два веб-сервера.
- Один для показа веб-страницы, которая ссылается либо на форму входа, либо на сертификат клиента, и этот сервер также реализует форму для входа.
- Тот, который требует от пользователя указания сертификата клиента.
Вы можете решить эту проблему, используя тот же сертификат подстановки для обоих серверов и имеющих их в разных поддоменах, чтобы вы могли фактически вернуть эту настройку на два разных сервера (IP-адреса).
Вы можете использовать один и тот же фактический физический сервер и отправлять «виртуальный хост» на основе IP, и вы можете использовать тот же сертификат SSL для обоих.
Причина, по которой вам нужны разные серверы, заключается в том, что запрос на сертификат клиента SSL запускается на уровне установления связи SSL, поэтому вы не можете использовать виртуальные хосты на основе имени, для этого вам нужны 2 реальных сервера.