zaLinux.ru

Ошибка «net::ERR_CERT_AUTHORITY_INVALID» для самоподписанного сертификата (РЕШЕНО)


Оглавление

  1. net::ERR_CERT_AUTHORITY_INVALID на локальном веб-сервере
  2. Что вызывает ошибку net::ERR_CERT_AUTHORITY_INVALID
  3. Как исправить ошибку net::ERR_CERT_AUTHORITY_INVALID в Linux
  4. Как исправить ошибку net::ERR_CERT_AUTHORITY_INVALID в Windows

net::ERR_CERT_AUTHORITY_INVALID на локальном веб-сервере

Данная статья посвящена исправлению ошибки «net::ERR_CERT_AUTHORITY_INVALID» для сертификата, который вы сгенерировали на своём компьютере в целях тестирования HTTPS. То есть здесь будет показано, как исправить ошибку на локальном веб-сервере.

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

Итак, возвращаемся к нашему локальному веб-серверу. Вы создали самоподписанный сертификат и настроили веб-сервер работать по протоколу HTTPS, но веб-браузер сообщает об ошибке net::ERR_CERT_AUTHORITY_INVALID.

Что вызывает ошибку net::ERR_CERT_AUTHORITY_INVALID

Суть ошибки в том, что сертификат подписан Центром Сертификации (CA), которому веб-браузер не доверяет. В результате при открытии веб-сайта вам будет показано следующее сообщение:

Your connection is not private
Attackers might be trying to steal your information from hackware.local (for example, passwords, messages, or credit cards). Learn more about this warning
net::ERR_CERT_AUTHORITY_INVALID
Turn on enhanced protection to get Chrome's highest level of security
This server could not prove that it is hackware.local; its security certificate is not trusted by your computer's operating system. This may be caused by a misconfiguration or an attacker intercepting your connection.

Proceed to hackware.local (unsafe)

Поскольку сертификат для локального веб-сайта, скорее всего, подписан с помощью ключей CA которые вы сами же и создали, то выход из данной ситуации только один — добавить созданный вами Центр Сертификации в доверенные. Это приведёт к тому, что любые сертификаты, которые подпишите данным Центром Сертификации, будут восприниматься как надёжные.

Больше подробностей смотрите в статье: OpenSSL: принципы работы, создание сертификатов, аудит


Как исправить ошибку net::ERR_CERT_AUTHORITY_INVALID в Linux

Chrome, Chromium, Firefox и созданные на их основе веб браузеры НЕ доверяют корневым сертификатам, установленным на уровне системы.

Причём эти браузеры хотя и используют NSS, они игнорируют общесистемные сертификаты NSS, которые можно добавить в файл /etc/pki/nssdb!

Firefox, Thunderbird, Chromium, Chrome и другие приложения, которые используют NSS, хранят свои списки доверенных сертификатов в файлах cert9.db. Причём у каждой из этих программ имеется свой собственный файл cert9.db. Чтобы добавить свой сертификат в каждый из этих файлов можно использовать скрипт.

Сохранить следующий код в файл CAtoCert9.sh:

#!/bin/bash
 
certfile="/home/mial/myCA/rootCA.crt"
certname="HackWare CA"
 
for certDB in $(find ~/ -name "cert9.db")
do
    certdir=$(dirname ${certDB});
    certutil -A -n "${certname}" -t "TCu,Cu,Tu" -i ${certfile} -d sql:${certdir}
done

В этом файле измените значение certfile на имя файла вашего сертификата и значение certname на имя вашего сертификата, сохраните и закройте файл.

Причём, обратите внимание, в качестве certfile нужно указать НЕ сертификат веб-сайта, а сертификат (публичный ключ) локального Центра Сертификации!

Затем запустите его следующим образом:

bash ./CAtoCert9.sh

В результате в домашней папке пользователя будут найдены все файлы cert9.db и в каждый из них будет добавлен указанный CA сертификат.

Перезагружать веб-сервер не требуется. Достаточно перезагрузить веб-страницу (желательно с Ctrl+F5).

Как можно увидеть, теперь проблема решена.

Чтобы удалить сертификаты, добавленные с помощью приведённого выше скрипта, создайте файл CAfromCert9.sh и скопируйте в него следующее:

#!/bin/bash

certname="HackWare CA"

for certDB in $(find ~/ -name "cert9.db")
do
	certdir=$(dirname ${certDB});    
	certutil -D -d sql:${certdir} -n "${certname}"
done

В этом файле измените значение certname на имя вашего сертификата, сохраните и закройте файл.


Затем запустите его следующим образом:

bash ./CAfromCert9.sh

Как исправить ошибку net::ERR_CERT_AUTHORITY_INVALID в Windows

Подробности смотрите в разделе «Как добавить корневой сертификат в доверенные в Windows».


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *