Chrome как в расширении программно выбрать сертификат

от admin

Получить отпечаток SSL-сертификата текущей страницы в расширении Chrome

Я пытаюсь написать расширение, которое проверяет отпечаток SHA1 сертификата SSL сайта с третьим лицом. Однако, похоже, это невозможно сделать ни с помощью встроенных API расширения JavaScript, ни с расширением Chrome.

Но, к сожалению, он применим только к Firefox. Есть ли способ сделать это кросс-браузерным способом или даже просто в Chrome?

1 ответ

Не относится к январю 2014 года (но есть сообщения об ошибках в файле).

Firefox

В настоящее время Firefox имеет только способ предоставить информацию сертификата пассивно, без какого-либо API расширения, чтобы иметь возможность блокировать соединение, которое, как считается, имеет несоответствующий сертификат. Там Ошибка Mozilla # 644640 — «Внедрить точку расширения для расширений, чтобы влиять на решения доверия в PSM» , которая отслеживает возможность отклонения подключений.

Chrome, с другой стороны, даже не позволяет вам проверять сертификат в первую очередь; там Chromium Issue # 107793 — «Предоставьте информацию о соединениях TLS с расширениями через API webRequest» , который, как представляется, отслеживает как возможность просто проверять сертификаты в первую очередь, так и отменять доверие, если это необходимо.

Проект предложения API Chromium, связанный с вышеизложенным выпуском 107793 (обратите внимание, что это только проект предлагаемого интерфейса без фактической реализации до сих пор):

Как получить сертификат браузера для цифровой подписи полезной нагрузки с помощью расширения Chrome

Я работаю над расширением Chrome, чтобы получить доступ к списку сертификатов в моем браузере (включая приобретенный сертификат класса 3).

В этом тесте content.js почти не используется. У меня есть значок расширения в браузере, и при его нажатии я запускаю background.js. Я пытаюсь эмулировать API-интерфейсы, представленные в документации по API Chrome https://developer. chrome.com/docs/extensions/reference/certificateProvider/

Я занимаюсь тем, как вызывать такие методы, как collectAvailableCertificates(), handleSignatureRequest(request), как показано в документе. Моя цель — использовать этот купленный сертификат для цифровой подписи полезной нагрузки xml.

1 ответ

certificateProvider API преследует совершенно другую цель.

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

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

Весь этот API сообщает браузеру, какие сертификаты доступны (по расширению), когда веб-сервер запрашивает аутентификацию клиентского сертификата HTTPS.

Ни меньше, ни больше. Некоторые API Chrome существуют только для функций управления в Chrome OS, где другие интерфейсы недоступны.

Информация об ограничениях Chrome OS была доступна на веб-сайте документации не позднее октября 2021 г., но, похоже, не отражено в текущем, что является ошибкой веб-сайта с документацией. И это не похоже на то, что он был расширен для работы в другом месте — это будет упомянуто на странице «Что нового» , но в октябре 2021 года он снова подтверждает, что это «API Chrome OS» и с тех пор не упоминается.

Вместо этого вам следует обратить внимание на API-интерфейсы веб-криптографии, например. SubtleCrypto.sign , но это означало бы включая ваш закрытый ключ в самом расширении.

EDIT: На самом деле у Chrome есть другой связанный API, chrome.platformKeys , что может разрешить доступ к хранилищу сертификатов ОС (если это ваша ситуация — вам нужно использовать установленный сертификат, не включая его в расширение).

Его можно использовать для запроса открытого/закрытого ключа из хранилища ОС и дальнейшего использования собственной версии SubtleCrypto для работы с ними.

Chrome как в расширении программно выбрать сертификат

Доступ к сертификатам клиентов и замена диалогового окна выбора сертификатов в chrome extension

Есть ли API расширения, который позволяет получить доступ к клиентским сертификатам? Я хотел бы предоставить измененный селектор сертификатов на основе сведений о сертификате.

Кроме того, насколько я понял, Google Chrome не предоставляет собственный менеджер клиентов, а использует собственные решения для управления сертификатами клиентов. В связи с этим полное управление сертификатами может быть невозможно по дизайну. Но поскольку Chrome позволяет создавать и импортировать сертификаты, созданные тегом html5, мне было интересно, может ли расширение импортировать сертификаты клиентов.

Доступ к клиентским сертификатам и замена диалогового окна выбора сертификата в расширении Chrome

Есть ли API-интерфейс расширения, который позволяет получить доступ к клиентским сертификатам? Я хотел бы предоставить модифицированный селектор сертификата на основе сведений о сертификате.

Кроме того, насколько я понял, Google Chrome не предоставляет собственного менеджера клиентов, а использует собственные решения для управления клиентскими сертификатами. Из-за этого полное управление сертификатами может быть невозможным по умолчанию. Но поскольку Chrome позволяет генерировать и импортировать сертификаты, сгенерированные тегом html5, мне было интересно, может ли расширение импортировать клиентские сертификаты.

задан 01 июля ’12, 22:07

0 ответы

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками google-chrome google-chrome-extension or задайте свой вопрос.

Как объяснить гугл хрому, чтобы он понял, что сертификат правильный?

Using Chrome, hit a page on your server via HTTPS and continue past the red warning page (assuming you haven’t done this already).
Open up Chrome Settings > Show advanced settings > HTTPS/SSL > Manage Certificates.
Click the Authorities tab and scroll down to find your certificate under the Organization Name that you gave to the certificate.
Select it, click Edit, check all the boxes and click OK. You may have to restart Chrome.

Читать:
Что такое невырожденная матрица

You should get the nice green lock on your pages now.

EDIT: I tried this again on a new machine and the certificate did not appear on the Manage Certificates window just by continuing from the red untrusted certificate page. I had to do the following:

On the page with the untrusted certificate (https:// is crossed out in red), click the lock > Certificate Information.
Click the Details tab > Export. Choose PKCS #7, single certificate as the file format.
Then follow my original instructions to get to the Manage Certificates page. Click the Authorities tab > Import and choose the file to which you exported the certificate, and make sure to choose PKCS #7, single certificate as the file type.
If prompted certification store, choose Trusted Root Certificate Authorities
Check all boxes and click OK. Restart Chrome.

Заставить Chrome принимать самоподписанный сертификат localhost

Я создал самоподписанный SSL-сертификат для localhost CN. Firefox принимает этот сертификат после первоначальной жалобы на него, как и ожидалось. Chrome и IE, однако, отказываются принимать его, даже после добавления сертификата в системное хранилище сертификатов в разделе Trusted Roots. Даже если сертификат указан как правильно установленный, когда я нажимаю «Просмотр информации о сертификате» во всплывающем окне HTTPS в Chrome, он по-прежнему настаивает на том, что сертификату нельзя доверять.

Что я должен сделать, чтобы Chrome принял сертификат и перестал жаловаться на него?

 yanet.moralesr

Подключение не защищено! ОШИБКА при входе на САЙТЫ из под Windows 7? Исправляем легко!

Как получить и настроить LetsEncrypt SSL сертификат для сайта?

КАК ПОДМЕНИТЬ ЦИФРОВОЙ СЕРТИФИКАТ? �� ОБХОД ПРЕДУПРЕЖДЕНИЙ GOOGLE CHROME �� КРИПТОВАНИЕ EXE ФАЙЛОВ

WEB.3: HTTPS, SSL и самоподписанный сертификат

Этот вопрос имеет 1 ответ на английском, чтобы прочитать их войдите в свой аккаунт.

Только для localhost в:

Просто вставьте это в свой хром:

Вы должны увидеть выделенный текст говорит: Допускает недопустимые сертификаты на ресурсы, загруженные с localhost

Нажмите Кнопку «Включить».

 kellen

Этот работал для меня:

  1. Используя хром, нажмите на странице вашего сервера через HTTPS и пропустить страницу красная сигнальная (если вы не'т сделать это уже).
  2. Открывается в настройках Chrome > Показать дополнительные настройки > протоколы HTTPS/SSL и ГТ; управление сертификатами`.
  3. Перейдите на вкладку «полномочия» и прокрутите вниз, чтобы найти ваш сертификат под названием организации, которую вы подарили сертификат.
  4. Выберите его, Нажмите кнопку Редактировать (примечание: в последних версиях Chrome, кнопка сейчас «дополнительно» и вместо того, чтобы на «редактировать», у), установите все флажки и нажмите кнопку ОК. Возможно, вам придется перезапустить Chrome.

Вы должны получить хороший зеленый замок на ваших страницах сейчас.

Редактировать: я это попробовал еще раз на новую машину и сертификат не отображаются в окне Управление сертификатами, просто продолжение со страницы Красной ненадежный сертификат. Мне пришлось сделать следующее:

  1. На странице с недоверенный сертификат (с HTTPS:// это зачеркнуто красным), нажмите на замок > информация о сертификации. Примечание: на более новых версиях Chrome, у вас есть, чтобы открыть инструменты разработчика > безопасности , и выберите Просмотр`.
  2. Нажмите на вкладку «Сведения» > экспорт`. Выберите формат PKCS #7, один сертификат как файл формата.
  3. Затем следуйте моей оригинальной инструкции, чтобы попасть на страницу управления сертификатами. Нажмите на вкладку власти > импорт и выбрать файл, в который вы экспортировали сертификат, и обязательно выбрать формате PKCS #7, один сертификат тип файла.
  4. Если потребуется хранилище сертификатов, выбрать Доверенные корневые центры сертификации
  5. Установите все флажки и нажмите кнопку ОК. Перезапустите Chrome.

ОБНОВЛЕНИЕ ДЛЯ CHROME 58+ (ОСВОБОЖДЕН 2017-04-19)

Как в Хром 58, способность идентифицировать хозяина, используя только с commonname удалена. Сертификаты должны использовать subjectaltname с целью определения их хост(ы). См. далее [обсуждение здесь](https://groups.google.com/a/chromium.org/forum/m/#!тема/безопасности-Дев/IGT2fLJrAeo) и [багтрекер здесь](https://bugs.chromium.org/p/chromium/issues/detail?id=308330). В прошлом, subjectaltname С` был использован только для многоузловых сертификаты, поэтому некоторые внутренние инструменты Калифорния Дон'т включать их.

Если ваш самозаверяющие сертификаты хорошо работал в прошлом но вдруг начал генерировать ошибки в Chrome 58, вот почему.

Так что какой бы метод вы используете, чтобы создать свой самоподписанный сертификат (или сертификат, подписанный собственной подписью Калифорния), убедитесь, что сервер'ы сертификата содержит subjectaltname с правильной ДНС и/или ИС запись/записи, даже если это's только для одного хозяина.

Для OpenSSL, это означает ваша OpenSSL конфигурации ( /и т. д./протокол SSL/OpenSSL для.КНФ на Ubuntu) должны иметь нечто подобное для одного узла:

или на несколько узлов:

В Chrome'зрителя с сертификата (который был перемещен, чтобы «безопасности» и в разделе разработчика F12) вы должны увидеть его в списке под заголовком расширения как сертификат альтернативного имени субъекта :

Как заставить chrome доверять сертификату?

Добрый день!
Хочу защитить вебсокетный трафик между мной и моим прилоением, работающей на AWS EC2.

Сделал себе самоподписной сертификат по этой инструкции:

Добавил его в Keychain (у меня macOS) и заставил систему доверять ему:
60fabf72181a4452239827.png

Перезапустил хром и обратился с приложению. Хром по-прежнему не доверяет моему сертификату.
60fac06faf0d6522923302.png
60fac04336bba773168260.png
хотя если ткнуть в хроме на сертификат, откроется Keychain, в которой сертификат указан как доверенный (см. рис.1).

  • при создании сертификата в CN указывать *
  • при создании сертификата в CN указывать IP-адрес 10.10.1.91
  • при создании сертификата в CN указывать домен test.local и прописывать в /etc/hosts 10.10.1.91 test.local

Нажимать «дополнительно — бла-бла-бла» не вариант, т.к. весь трафик от моего приложения идет по веб-сокету, а попытка подключиться к wss:// всегда завершается ошибкой, если хром не принимает сертификат как достоверный.
Ничего из вышеперечисленного не помогает. Как же все-таки заставить хром доверять моему сертификату, если я этого хочу?

Похожие статьи