Я сомневаюсь, что для проверки этого будет какой-либо запрос устройства.
Я на самом деле не сделал этого, но вы, вероятно, могли бы придумать тест, где JavaScript делает запрос AJAX на сервер https, который использует сертификат, для которого вы хотите проверить. Если запрос завершается успешно, то сертификат работает. (This question, похоже, подразумевает, что запросы AJAX (правильно) потерпят неудачу, если сертификат SSL не будет проверяться)
Обратите внимание, что, поскольку схема (http или https) URL-адреса будет отличаться (и, возможно, домен зависит от как вы это настроили), ваш тестовый сайт должен будет использовать заголовок CORSAccess-Control-Allow-Origin
, чтобы браузер мог выполнить запрос. См.: AJAX calls to untrusted (self-signed) HTTPS fail silently
EDIT: У меня было время и собрал очень простой пример. Goto http://ssl_test.gjp.cc. Эта страница попытается сделать запрос AJAX к https://ssl_test2.gjp.cc, в котором используется самозаверяющий сертификат. Прежде чем вы доверяете ssl_test2
, вы увидите «Сбой» на странице ssl_test
, однако, как только вы доверяете сертификату для ssl_test2
, вы всегда должны видеть «Успех» на ssl_test
.
Обратите внимание, что это не доказывает, что ваш пользователь имеет сертификат CA, - все это доказывает, что они настроили свой браузер, чтобы доверять тестовому сайту (ssl_test2
). Если вы никогда не укажете пользователя на тестовый сайт, у них никогда не будет возможности доверять только этому сайту, поэтому это должно работать достаточно хорошо.
Я хотел бы добавить, что только потому, что запрос работал не означает, что был установлен сертификат. Пользователю также может быть любопытно и вручную принять экранное сообщение с вопросом, доверяет ли он неизвестному сертификату. Итог: не используйте частные сертификаты CA. – Sven
@ Возможно, вы хотели бы предложить альтернативу? –
@Sven В моем ответе описывается использование запроса AJAX, будут ли мобильные браузеры отображать сообщение, чтобы принять сертификат в этом случае? –