Как заставить браузер доверять локальному SSL-сертификату?
Хотя есть similar вопросы и даже хорошие ответы, они либо не заботятся о локальном хосте. или спросите об одном конкретном варианте / решении (самоподписанный или CA).
Какие есть варианты? Как они сравниваются? Как мне это сделать?
3 ответа
tl; dr Создать сертификат, выданный собственным ЦС (см. сценарий ниже)
Вот что я нашел. Поправьте меня, где я ошибаюсь.
Есть ЦС (центры сертификации). Они выдают сертификаты (подписывают CSR) для других CA (промежуточных CA) или серверов (сертификаты конечных объектов). Некоторые из них являются корневыми авторитетами. У них есть самоподписанные сертификаты, выданные ими самими. То есть обычно существует цепочка доверия, которая идет от сертификата сервера к корневому сертификату. А за корневой сертификат не за что поручиться. Таким образом, ОС имеют хранилище корневых сертификатов (или хранилище политик доверия), общесистемный список доверенных корневых сертификатов. У браузеров есть собственные списки доверенных сертификатов, которые состоят из общесистемного списка и сертификатов, которым доверяет пользователь.
В Chromium вы управляете сертификатами в chrome: // settings / Certificates. В Firefox: Preferences > Privacy & Security > Certificates > View Certificates . У обоих есть вкладка Authorities, которая представляет собой список доверенных корневых сертификатов. И вкладка Серверы, список доверенных сертификатов серверов.
Чтобы получить сертификат, вы создаете CSR (запрос на подпись сертификата), отправьте его в CA. CA подписывает CSR, превращая его в доверенный сертификат в процессе.
Сертификаты и CSR — это набор полей с информацией и открытым ключом. Некоторые поля называются расширениями. Сертификат CA — это сертификат с basicConstraints = CA:true .
Вы можете проверить ошибки сертификата в Chromium в Developer Tools > Security .
Доверие к сертификатам в масштабах всей системы
Когда вы меняете хранилище корневых сертификатов ОС, вам необходимо перезапустить браузер. Вы меняете его с помощью:
trust помещает сертификаты CA в категорию «авторитетных» ( trust list ) или в категорию «другие записи» в противном случае. Сертификаты ЦС отображаются на вкладке «Авторитеты» в браузерах или на вкладке «Серверы».
Firefox не доверяет сертификатам сервера из корневого хранилища сертификатов ОС, в отличие от Chromium. Оба доверяют сертификатам CA из корневого хранилища сертификатов ОС.
Доверять сертификатам в браузере
В Chromium и Firefox вы можете добавлять (импортировать) сертификаты на вкладку Authorities. Если вы попытаетесь импортировать сертификат не CA, вы получите сообщение «Not a Certificate Authority». После выбора файла появляется диалоговое окно, в котором вы можете указать настройки доверия (когда доверять сертификату). Соответствующая настройка для обеспечения работы сайта — «Доверять этому сертификату для идентификации веб-сайтов».
В Chromium вы можете добавлять (импортировать) сертификаты на вкладке «Серверы». Но они попадают либо на вкладку «Центры» (сертификаты CA, и после выбора файла вам не открывается диалоговое окно настроек доверия), либо на вкладку «Другие» (если сертификат не CA).
В Firefox вы не можете точно добавить сертификат на вкладку «Серверы». Вы добавляете исключения. И там можно доверять сертификату без расширений (плохой).
Самозаверяющие расширения сертификатов
Моя система поставляется со следующими настройками по умолчанию (будут добавлены расширения) для сертификатов:
Кроме того, Chromium считает сертификат недействительным, если в нем нет subjectAltName = DNS:$domain .
Несамоподписанные расширения сертификатов
Когда браузеры доверяют самозаверяющему сертификату
Чтобы Chromium мог доверять самозаверяющему сертификату, он должен иметь basicConstraints = CA:true и subjectAltName = DNS:$domain . Для Firefox даже этого недостаточно:
Когда браузеры доверяют сертификату, выпущенному собственным ЦС
Firefox не нуждается в расширениях, но Chromium требует subjectAltName .
openssl шпаргалка
openssl genpkey -algorithm RSA -out «$domain».key — сгенерировать закрытый ключ (man)
openssl req -x509 -key «$domain».key -out «$domain».crt — создать самоподписанный сертификат (мужчина)
Без -subj он будет задавать вопросы относительно отличительного имени (DN), например, общего имени (CN), организации (O), населенного пункта (L). Вы можете ответить на них «заранее»: -subj «/CN=$domain/O=$org» .
Чтобы добавить расширение subjectAltName , вы должны либо иметь конфигурацию, в которой все это указано, либо добавить раздел в конфигурацию и указать openssl его имя с помощью переключателя -extensions :
openssl req -new -key «$domain».key -out «$domain».csr — генерировать CSR, может принимать опцию -subj (мужчина)
openssl x509 -req -in «$ домен» .csr -days 365 -out «$ домен» .crt \ -CA ca.crt -CAkey ca.key -CAcreateserial — подписать CSR (мужчина)
Не работает без -CAcreateserial . Он создает файл ca.srl , в котором хранится серийный номер последнего сгенерированного сертификата. Чтобы добавить subjectAltName , вам понадобится переключатель -extfile :
openssl req -in $domain.csr -text -noout — просмотреть CSR ( man )
openssl x509 -in $domain.crt -text -noout — просмотреть сертификат ( man )
Создать самоподписанный сертификат
(вам понадобится исключение в Firefox, чтобы оно работало)
Сгенерировать сертификат, выданный собственным ЦС
Конфигурация веб-сервера
P.S. Я использую Chromium 65.0.3325.162, Firefox 59.0 и openssl-1.1.0.g .
Windows
Очевидно, в Windows нет утилиты trust . В Windows есть два хранилища: хранилища локальных компьютеров и сертификатов текущего пользователя. Нет смысла использовать хранилище сертификатов Local Machine, поскольку мы работаем только для нашего текущего пользователя. Затем есть магазины. Два предопределенных из них представляют наибольший интерес: доверенные корневые центры сертификации и промежуточные центры сертификации. Обычно упоминается в командной строке как root и CA.
Вы можете получить доступ к Диспетчеру сертификатов Chrome, выполнив команду chrome: // settings /? Search = Manage% 20certificates и нажав Управление сертификатами. Наибольший интерес представляют вкладки «Доверенные корневые центры сертификации» и «Промежуточные центры сертификации».
Одним из способов управления сертификатами является командная строка :
Результаты следующие (для хранилищ локальных компьютеров и сертификатов текущего пользователя):
Другими вариантами могут быть двойной щелчок по сертификату в проводнике, импорт сертификатов из диспетчера сертификатов Chrome, использование оснастки MMC «Сертификаты» (запуск certmgr.msc ) или использование CertMgr.exe .
Для тех, у кого установлено grep , вот как быстро проверить, где находится сертификат:
Таким образом, установка сертификата CA в хранилище Current User> Trusted Root Certification Authorities кажется лучшим вариантом. И убедитесь , что не забыли перезапустить браузер.
Браузер не принимает самоподписанный сертификат
Я пишу HTTPS Proxy (наподобие Fiddler, только для конкретного домена). Соответственно, для просмотра зашифрованного трафика нужно организовать передачу браузеру сертификата с совпадающим именем нужного домена. Сертификат предварительно установлен как доверенный, т.к. является самоподписанным (через Мастер импорта сертификатов Windows; просмотреть можно в настройках сертификатов браузера в списках Личные и Доверенные корневые центры сертификации). Однако, при попытке соединения браузер даёт ошибку ERR_CERT_COMMON_NAME_INVALID и пишет что соединение не защищено.
В адресной строке указано, что сертификат не действителен, но если там же открыть настройки переданного сертификата, то в окне свойств пишется, что сертификат действителен. Хм.
P.S.: Использую Google Chrome
ERR_CERT_COMMON_NAME_INVALID говорит о том, что сертификат вы сделали не для того домена или сайта, к которому пытаетесь подключиться.
Chrome последних версий не смотрит на commonName , а смотрит только на subjectAltName . Если вы при создании сертификата через конфиг не указываете SAN, то вы получаете такую ошибку.
Русские Блоги
Как заставить Chrome доверять сертификату Self -Signature в Windows?
В статье «Введение в NSS, одна статья, статья» подробно представил библиотеку паролей NSS. Многие разработчики, возможно, не слышали о NSS, но все они знают, что библиотека сертификатов CREDID в библиотеке паролей NSS (CERT9.DB или CERT8. DB), многие программные и услуги могут ссылаться на надежный сертификат NSS. Как самые популярные браузеры, Chrome и Firefox, они также могут использовать NSS для доверия библиотеки корневых сертификатов на разных платформах, поэтому в этой статье рассказывается о соответствующих знаниях, чтобы каждый обладал более глубоким пониманием библиотеки паролей NSS. Библиотека сертификатов — это Очень важно для понимания протокола HTTPS.
Несколько тем в этой статье на несколько тем:
- Вы знаете, откуда берется библиотека сертификации Chrome?
- Вы знаете, откуда берется библиотека сертификации Firefox?
- Знаете ли вы, как генерировать сертификат, согласованный?
- Вы знаете, как экспортировать сертификат?
- Вы знаете, как обновить сертификат в Chrome и Firefox?
Поскольку существует много контента, в этой статье объясняется две статьи. В первой статье в основном объясняется библиотека сертификатов корневых сертификатов NSS и Windows и вводит, как обновить корневой сертификат в Chrome. Второе объяснение того, как обновить библиотеку сертификатов NSS Root и как обновить библиотеку сертификатов Root, используемая Firefox.
Заранее, в следующей таблице перечислены некоторые ситуации различных платформ и различных браузеров, цитирующих библиотеки сертификации кредита.
Платформа браузера | Windows | Unix |
---|---|---|
Chrome | Используйте библиотеку сертификации сертификатов Windows Trust | Используйте библиотеку сертификатов сертификатов траста NSS |
Firefox | Используйте библиотеку сертификатов сертификатов траста NSS | Используйте библиотеку сертификатов сертификатов траста NSS |
Что такое библиотека сертификатов доверенного корня
При подключении веб -сайта HTTPS сервер отправит цепочку сертификатов, но есть только цепочка сертификатов. Клиент не может завершить проверку сертификата. Должен быть сертификат для завершения итерации сертификации подписи. То есть клиент должен Доверьте корневой сертификат, чтобы построить основу для доверия, где корневой сертификат?
- На платформе Windows Microsoft имеет специальную карту.
- На платформе Linux программное обеспечение и услуги обычно используют библиотеку сертификатов NSS Root.
- На платформе Apple есть также специализированные библиотеки сертификации.
Чтобы вести бизнес, каждое учреждение CA должно подать заявку на внедрение своих собственных корневых сертификатов в различные платформы. Если заявка отклонена, учреждение CA не сможет вести бизнес.
В области программного обеспечения с открытым исходным кодом, библиотека сертификатов NSS Root является наиболее популярной, так много программного обеспечения и сервисов будет использовать библиотеку сертификатов NSS Root. Какова причина? Ключевой лежит в прозрачности. NSS строго рассмотрел и решительно устраняет существование нелегальных сертификатов CA Root.
Для обычных пользователей и разработчиков, в целом, они не могут связаться с библиотекой сертификатов доверенного корневого сертификата, но в некоторых случаях также возможно, что вы можете обновить локальную библиотеку сертификатов с доверенным корнем, например:
(1) В среде разработки следует избегать использования онлайн -сертификатов, поскольку сертификат и личный ключ следует сохранить вместе. Поскольку среда разработки относительно хаотична, легко утечь частные ключи, что повышает риски безопасности.
В этом случае можно сгенерировать самопознательный сертификат. Поскольку браузер не доверяет сертификату, он всегда вызывает риски безопасности при посещении веб -сайта. Чтобы избежать частых пособий, вы можете вручную добавить сертификат в достойный корень браузера. может быть добавлен вручную в заслуживающий доверия корень браузера. В библиотеке сертификатов.
(2) Создайте частное CA в рамках предприятия, а затем выпустите сертификат своему собственному бизнесу. Эта ситуация очень распространена. Например, некоторые внутренние системы управления могут использовать самооценку сертификата для снижения стоимости заявки на сертификат. Риск может быть добавлен в библиотеку надежных сертификатов браузера.
Снова интерпретируйте Certutil и Cert9.db
В библиотеке достоверных корневых сертификатов NSS все данные хранятся в cert9.db (cert9.db, key4.db и pkcs11.txt) или cert8.db (cert8.db, key3.db, secmod.db)), из После версии Firefox 58 используется cert9.db.
Так где же cert9.db и cert8.db? Это два разных формата данных. CERT9.DB представляет базу данных SQLITE, а CERT8.DB представляет унаследованную базу данных безопасности.
Используйте инструмент командной строки Certutil для управления сертификатом NSS, а установка очень проста:
Прежде всего, чтобы проверить файл cert9.db через заказ: эти сертификаты:
Параметр -d представляет файл cert9.db для каталога. -L Отображает файл сертификата, содержащийся в файле, а вывод выглядит следующим образом:
Библиотека сертификатов Windows Root
Cryptoapi Microsoft также очень популярен. Как и NSS, это библиотека кода нижнего кода криптографии. Он также включает в себя библиотеку сертификатов системных сертификатов. Хром IE, Edge и Windows Platforms использует библиотеку системных сертификатов Microsoft.
Библиотека сертификатов системного сертификата Microsoft хранится в реестре. Поскольку компьютер Windows является многоупонентной операционной системой и позволяет управлять стратегией групповой стратегии, инвентаризация сертификата корневого сертификата находится в нескольких позициях, таких как::
- CERT_SYSTEM_STORE_CURRENT_USER, представляющий текущего пользователя входа в систему, соответствующий сертификат хранится в каталоге HKEY_CURRENT_USER \ Software \ Microsoft \ SystemCertificates.
- CERT_SYSTEM_STORE_LOCAL_MACHINE, представляющий машину, соответствующий сертификат хранится в HKEY_LOCAL_MACHINE \ Software \ Microsoft \ SystemCertification of.
- CERT_SYSTEM_CURRENT_USER_GROUP_POLICY, представляющий текущую стратегию группы пользователей, соответствующий сертификат хранится в каталоге HKEY_CURRENT_USER \ Software \ POLICIES \ Microsoft \ SystemCertificates.
При обычных обстоятельствах библиотека сертификатов корневых сертификатов, используемая пользователем посадки системы Windows, хранится в CERT_SYSTEM_STORE_CURRENT_USER. Microsoft предоставляет сертификат управления инструментами CERTMGR (фактически работа в работе). Введите инструмент управления сертификатом CERTMGR в Командная строка CMD. Как показано ниже:
Для нас наиболее заинтересованным является «Агентство по выдаче сертификатов доверенного корня». Все сертификаты хранятся в этом каталоге. Вы можете добавить или удалить корневую сертификат через инструмент Certmgr и командную строку CERTMGR.
Как обновить сертификат в системе Windows
В системе Windows Chrome использует сертификат Windows Root. Если вам нужно обновить, есть два способа. Первый — использовать сертификат управления CERTMGR. Второе — сосредоточиться на введении меню функции Chrome для обновления сертификата. Фактически, функциональное меню эквивалентно выполнению операций управления CERTMGR, просто интегрируя эту функцию в Chrome.
Прежде всего, мы получаем самостоятельный сертификат от онлайн (см. Способ создания сертификата самостоятельно, см. Следующую статью здесь), например, Accesshttps://www.test.com, Затем откройте инструмент Chrome Developer (F8), выберите [Security]-[просмотреть сертификат], а затем сделайте шаг шаг за шагом за сертификатом подписи, как показано ниже, и сохраните его в качестве теста.
Следующим шагом является импорт сертификата в библиотеку сертификатов ROOT. Есть два способа. Первый дважды щелкните файл Test.cer, а затем введйте меню сертификата. Ниже обратите внимание на выбор, чтобы сохранить сертификат в агентство по выдаче сертификатов доверенного корня.
После перезапуска хрома, затем посетитеhttps://www.test.comНет предупреждения о безопасности?
Автор: жирный жир
Ссылка: https://www.jianshu.com/p/35c31b865bb9
Источник: Цзянь Шу
Авторское право принадлежит автору. Для бизнес -перепечаток, пожалуйста, свяжитесь с автором, чтобы получить авторизацию. Пожалуйста, укажите источник для незащитных перепечаток.
Интеллектуальная рекомендация
Время выполнения тестовой программы
[Описание проблемы] Время работы программы является важным индикатором программирования. Как измерить время работы программы в QT? 【Анализ】 Тестовая функция способ 1 QTime, Его точность м.
Сплит EXCEL файлы по категориям
В работе по управлению вы столкнетесь с разделением отчета на различные подчиненные подразделения или разделением отчета, представленного подчиненным подразделением, на различные типы бизнеса. Пример.
How to Install RabbitMQ on CentOS 7
RabbitMQ is a widely used open-source message broker written in the Erlang programming language. As a message-oriented middleware, RabbitMQ can be used to implement the Advanced Message Queuing Protoc.
Разработка системы с высокой степенью параллелизма (передача)
оригинал: Учитель на зимних каникулах попросил его сделать обзор системных решений с высоким уровнем параллелизма, таких как веб-сайт бронирования 12306. После долгого и тщательного исследования он об.
Сообщение о событиях связывания морской черепахи Python
Код ошибки аномальный Вышеуказанное сообщение об ошибке приглашает 0 параметров, но пропущены 2 параметра. 2. Правильный код (функция привязки должна иметь два параметра, координаты времени прохождени.
Ошибка «Сертификат безопасности сайта не является доверенным». Как ее исправить?
Доброго дня!
Я думаю, что почти каждый пользователь (особенно в последнее время) сталкивался с ошибкой в браузере о том, что сертификат такого-то сайта не является доверенным, и рекомендацией не посещать его.
С одной стороны это хорошо (все-таки и браузер, и вообще популяризация подобных сертификатов — обеспечивает нашу безопасность), но с другой — подобная ошибка иногда всплывает даже на очень известных сайтах (на том же Google). 👋
Суть происходящего, и что это значит?
Дело в том, что когда вы подключаетесь к сайту, на котором установлен протокол SSL, то сервер передает браузеру цифровой документ ( сертификат ) о том, что сайт является подлинным (а не фейк или клон чего-то там. ). Кстати, если с таким сайтом все хорошо, то браузеры их помечают «зеленым» замочком напротив URL-строки: на скрине ниже показано, как это выглядит в Chrome.
Однако, сертификаты могут выпускать, как всем известные организации (Symantec, Rapidssl, Comodo и др.) , так и вообще кто-угодно. Разумеется, если браузер и ваша система «не знает» того, кто выпустил сертификат (или возникает подозрение в его правильности) — то появляется подобная ошибка.
Т.е. я веду к тому, что под раздачу могут попасть как совсем белые сайты, так и те, которые реально опасно посещать. Поэтому, появление подобной ошибки это повод внимательно взглянуть на адрес сайта.
Ну а в этой статье я хочу указать на несколько способов устранения подобной ошибки, если она стала появляться даже на белых и известных сайтах (например, на Google, Яндекс, ВК и многих других. Их же вы не откажетесь посещать? 😉).
Как устранить ошибку
👉 1) Обратите внимание на адрес сайта
Первое, что сделайте — просто обратите внимание на адрес сайта (возможно, что вы по ошибке набрали не тот URL).
Также иногда такое происходит по вине сервера, на котором расположен сайт (возможно, вообще, сам сертификат просто устарел, ведь его выдают на определенное время). Попробуйте посетить другие сайты, если с ними все «OK» — то вероятнее всего, что проблема не в вашей системе, а у того конкретного сайта.
Пример ошибки «Сертификат безопасности сайта не является доверенным»
Однако, отмечу, что если ошибка появляется на очень известном сайте, которому вы (и многие другие пользователи) всецело доверяете — то высока вероятность проблемы в вашей системе.
👉 2) Проверьте дату и время, установленные в Windows
Второй момент: подобная ошибка может выскакивать, если у вас в системе неверно задано время или дата . Для их корректировки и уточнения достаточно щелкнуть мышкой по «времени» в панели задач Windows (в правом нижнем углу экрана).
📌В помощь!
Как настроить дату и время в Windows 10/11: см. пошаговую инструкцию
Настройка даты и времени
После установки правильного времени, перезагрузите компьютер и попробуйте заново открыть браузер и сайты в нем. Ошибка должна исчезнуть.
Также обращаю внимание на то, что, если у вас постоянно сбивается время — вероятно у вас села батарейка на материнской плате. Представляет она из себя небольшую «таблетку», благодаря которой компьютер помнит введенные вами настройки, даже если вы его отключаете от сети (например, те же дата и время как-то высчитываются?).
Батарейка на материнской плате ПК
👉 3) Попробуйте провести обновление корневых сертификатов
Еще один вариант, как можно попробовать решить эту проблему — установить обновление корневых сертификатов. Обновления можно скачать на сайте Microsoft для разных ОС. Для клиентских ОС (т.е. для обычных домашних пользователей) подойдут вот эти обновления: https://support.microsoft.com/ (ссылка ну нужную страничку).
👉 4) Установка «доверенных» сертификатов в систему
Этот способ хоть и рабочий, но хотелось бы предупредить, что он «может» стать источником проблем в безопасности вашей системы. По крайней мере, прибегать к этому советую только для таких крупных сайтов как Google, Яндекс и т.д.
Для избавления от ошибки, связанной с недостоверностью сертификата, должен подойти спец. пакет GeoTrust Primary Certification Authority .
Скачать GeoTrust Primary Certification Authority можно с сайта: http://www.geotrust.com/resources/root-certificates/index.html
Кстати, на этой страничке расположено еще несколько сертификатов, их также можно до-установить в систему.
*
Кстати, чтобы скачать GeoTrust Primary Certification Authority:
- нажмите правой кнопкой мышки по ссылке download и выберите вариант «сохранить ссылку как. «;
Сохранить ссылку как.
Файл с расширением PEM
Теперь необходимо скачанный сертификат установить в систему. Как это делается, по шагам расскажу чуть ниже:
- сначала нажимаем сочетание кнопок Win+R , и вводим команду certmgr.msc , жмем OK;
- должен открыться центр сертификатов в Windows. Необходимо раскрыть вкладку «Доверенные корневые центры сертификации/сертификаты», щелкнуть по ней правой кнопкой мышки и выбрать «Все задачи — импорт».
Мастер импорта сертификатов
Указываем сертификат, который загрузили
Поместить сертификаты в доверенные. Далее
👉 5) Обратите внимание на антивирусные утилиты
В некоторых случаях эта ошибка может возникать из-за того, что какая-нибудь программа (например, антивирус) проверяет https трафик. Это видит браузер, что пришедший сертификат не соответствует адресу, с которого он получен, и в результате появляется предупреждение/ошибка.
Поэтому, если у вас установлен антивирус/брандмауэр, проверьте и на время отключите настройку сканирования https трафика (см. пример настроек AVAST на скрине ниже). 👇
Avast — основные настройки (отключение сканирование https трафика)
Либо, как вариант, на время удалите его или полностью отключите!
Управление экранами Avast — отключить на 10 минут
Чтобы открыть проблемный сайт — загрузите браузер MX5 (я о нем рассказывал в заметке о флеш-играх). При попытке перейти на «проблемный» сайт в нем — он вас предупредит, что это не безопасно, но если вы подтвердите свое намерение — н загрузит страничку!