Можем ли мы определить, установлен ли сертификат корневого центра сертификации?


Возможно ли это с помощью JavaScript или PHP? Я хочу иметь возможность определить, установлен ли мой личный центр сертификации на устройстве пользователя iOS или Android. Оттуда я могу решить, предоставлять ли инструкции по установке или нет. Я "гуглил" и не нашел ничего полезного. Кто-нибудь пробовал это раньше? Я хочу выяснить, на что мне следует потратить свое время, изучая. Если это невозможно, не могли бы вы предложить альтернативу в браузере?

РЕДАКТИРОВАТЬ: У меня здесь нет выбора и это не мое решение. Частный сертификат центра сертификации будет использоваться по другим соображениям безопасности.

Author: Jonny Sooter, 2013-08-27

2 answers

Я сомневаюсь, что будет какой-либо запрос устройства для проверки этого.

На самом деле я этого не делал, но вы, вероятно, могли бы придумать тест, в котором JavaScript отправляет AJAX-запрос на сервер https, который использует сертификат, который вы хотите проверить. Если запрос выполнен успешно, значит, сертификат работает. ( Этот вопрос , по-видимому, подразумевает, что запросы AJAX (правильно) завершатся неудачей, если сертификат SSL не будет подтвержден)

Обратите внимание, что, поскольку схема (http или https) URL-адрес будет отличаться (и, возможно, домен в зависимости от того, как вы это настроили), ваш тестовый сайт должен будет использовать CORS Access-Control-Allow-Origin заголовок, позволяющий браузеру выполнить запрос. См.: Вызовы AJAX для ненадежного (самозаверяющего) HTTPS завершаются беззвучно

РЕДАКТИРОВАТЬ: У меня было немного времени, и я собрал очень простой пример. Гото http://ssl_test.gjp.cc . Эта страница попытается сделать запрос AJAX на https://ssl_test2.gjp.cc , в котором используется самозаверяющий сертификат. Прежде чем вы доверяли ssl_test2, вы увидите "Сбой" на странице ssl_test, однако, как только вы доверяете сертификату для ssl_test2, вы всегда должны видеть "Успех" на ssl_test.

Обратите внимание, что это не доказывает, что у вашего пользователя установлен сертификат центра сертификации - все, что это доказывает, это то, что он настроил свой браузер так, чтобы доверять тестовому сайту (ssl_test2). Если вы никогда напрямую не укажете пользователю на тестовый сайт, у него никогда не будет возможности доверять только этому сайту, так что это должно сработать достаточно хорошо.

 6
Author: George P, 2017-05-23 12:22:42

Может быть, это поможет:

<img src="https://the_site/the_image" onerror="redirectToCertPage()" />
 1
Author: btpka3, 2013-09-11 08:07:33