Что такое самоподписанный сертификат
Обычный сертификат подписывает центр сертификации, которому доверяют браузеры. Самоподписанный подписан ключом самого владельца: у него нет внешнего поручителя. Технически шифрование он обеспечивает так же, но подтвердить, что за адресом действительно тот, кого вы ожидаете, он не может. Именно поэтому Firefox останавливает загрузку и показывает код MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT.
Сама по себе ошибка не признак атаки: самоподписанные сертификаты широко используются для внутренних сервисов, тестовых стендов и домашних устройств.
Где это встречается на практике
Чаще всего вы увидите такую ошибку на административных страницах: роутер, сетевое хранилище, камера, панель виртуализации, принтер. У них при первом запуске создаётся собственный сертификат, и доверять ему браузеру не на чем.
Вторая ситуация — тестовый или внутренний сервер компании, для которого не выпустили сертификат от публичного центра. Третья — забытый на боевом сайте временный сертификат, установленный при первичной настройке. Четвёртая, самая неприятная — подмена в чужой сети: если вы открываете известный публичный сайт и получаете самоподписанный сертификат, это повод остановиться.
Как решить, можно ли продолжать
Задайте себе три вопроса. Вы знаете, что за устройство или сервер перед вами? Находитесь ли вы в собственной или доверенной сети? Открывали ли вы этот же адрес раньше и видели ли то же предупреждение?
Если на все ответы «да», например при входе в панель домашнего роутера по адресу из его наклейки, добавление исключения оправдано. Firefox запомнит отпечаток сертификата, и при следующем входе не потревожит вас, пока сертификат не изменится.
Если же адрес принадлежит известному публичному сервису, продолжать нельзя. Смените сеть, проверьте адрес и не вводите пароли, пока ошибка не исчезнет.
Как аккуратно сделать сертификат доверенным
Для собственных сервисов лучше не привыкать нажимать «принять риск», а установить сертификат в доверенные осознанно. Можно сохранить сертификат из сведений на странице ошибки, сверить его отпечаток с тем, что показывает само устройство, и импортировать в хранилище Firefox как доверенный центр только для этого узла.
Если самоподписанных сервисов у вас много, удобнее завести небольшой собственный центр сертификации, один раз добавить его корень в браузеры и выпускать сертификаты внутри сети. Это заметно аккуратнее и безопаснее ручных исключений.
Не распространяйте закрытые ключи и не устанавливайте чужие корневые сертификаты по просьбе незнакомых людей.
Если сайт публичный
Владельцу публичного ресурса самоподписанный сертификат не подходит: посетители будут видеть предупреждение и уходить. Получите сертификат от признанного центра. Многие выдают их автоматически и без затрат на обслуживание, а установка и продление настраиваются один раз.
После установки проверьте, что отдаётся полная цепочка, а старый самоподписанный файл нигде не остался настроенным для других портов и служб, например для почты. Проверить всё можно публичным анализатором TLS.
Отпечаток сертификата как способ проверки
Чтобы принять решение о самоподписанном сертификате не вслепую, сравните его отпечаток. Он представляет собой короткую строку, вычисленную от содержимого сертификата. В Firefox отпечаток виден в сведениях, а на самом устройстве, например роутере или хранилище, его обычно можно найти в разделе управления сертификатами.
Если значения совпадают, вы обращаетесь к нужному устройству, и исключение безопасно. Если различаются, вам показывают другой сертификат: возможно, это перехват в сети, а возможно, устройство перевыпустило свой сертификат после сброса. Во втором случае старое исключение придётся удалить и подтвердить новое. Привычка сверять отпечаток занимает минуту, но защищает от ошибок доверия.
Что сделать со временем и запасами: Для домашнего оборудования заведите привычку: при первом входе сохраните отпечаток сертификата в заметках и проверяйте при следующих визитах. Если устройство поддерживает загрузку своего сертификата от признанного центра или внутреннего центра сертификации, замените заводской. Это избавит от повторяющихся предупреждений и снизит риск, что однажды вы привычно нажмёте «принять» на подменённой странице.