Итак, это забавная история о закреплении открытого ключа HTTP (HPKP) и строгой безопасности транспорта HTTP (HSTS).
Я играл с параметрами предварительной загрузки HTST Always и HPKP, не осознавая полностью последствий.
Примерно в то же время я обнаружил, что моя «тестовая» учетная запись, которую я использовал для «тестирования» того, как я могу полностью защитить пользователей, не была защищена. Я его удалял, переделывал и однажды забыл закрепить.
Это был обычный пользователь, практически без прав, я удалил пользователя, убив процессы, принадлежащие пользователю «test». Затем я rm -rfv /home/test/
.
Однако я все еще не чувствовал себя спасенным, поэтому я переустановил свой сервер, думая, что могу обновить сертификат с помощью Let's Encrypt, добавить их снова, и все готово.
Увы, этого не должно было быть. Когда я просматриваю свой веб-сайт (*. Eurobytes.nl) в Chrome, я получаю следующее сообщение:
ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN
При просмотре одного из моих поддоменов, Mozilla Firefox, он даже не отображает веб-сайт, он просто не идет туда.
Я предполагаю, что все это можно исправить, исключив себя из списка Mozilla Firefox / Google Chrome HTST и HPKP.
Как я могу удалить себя из HTST и HPKP?
На самом деле вы никак не можете это изменить. Обычно у вас нет доступа к браузерам посетителей вашего веб-сайта.
HSTS - строгая безопасность транспорта HTTP
Я предполагаю, что вы установили HSTS только через заголовок, а не через список (зарегистрируйте домен как https только через предварительную загрузку HSTS). В этом случае все браузеры, которые посетили ваш сайт, сохранили ваш домен с предпочтением использования HTTPS для данного максимального возраста.
Если вы зарегистрировали свой домен как сайт только по протоколу HTTPS (включая все поддомены) через https://hstspreload.org/ чем вам нужно сначала удалить свой домен из этого списка (удаление не рекомендуется - требуется довольно много времени).
HPKP - закрепление открытого ключа HTTP
То же самое и здесь: все посетители вашего веб-сайта сохранили разрешенные контакты для вашего домена в своих браузерах, и если вы установите новый сертификат SSL, не соответствующий ни одному из контактов, браузер не откроет ваш сайт.
Я бы рекомендовал использовать другое доменное имя.
Хорошо, здесь происходит несколько вещей.
Прежде всего HSTS говорит, что ваш сайт должен использовать HTTPS в течение того времени, которое вы указали ранее, когда браузер кэширует. Поскольку вы установили новый сертификат, вы все еще используете HTTPS, и это не проблема, и не то, что вам сообщает сообщение об ошибке.
HSTS также можно предварительно загрузить (жестко запрограммировать) в код браузеров. Но опять же, это не проблема, даже если вы это сделали, поскольку вы все еще используете HTTPS.
HPKP сообщает, что на вашем сайте можно использовать только определенные сертификаты HTTPS. Поскольку у вас есть новый сертификат, которого не было в ранее определенном списке, в этом и заключается ваша проблема.
К счастью, браузеры не позволяют предварительно загружать HPKP, поскольку я считаю это ужасной идеей.
Так как исправить?
Удалите его из браузера. В Chrome и Opera вы можете ввести chrome://net-internals/#hsts
в веб-браузере, найдите и удалите свой домен как для HSTS, так и для HPKP. Чтобы сделать то же самое для Firefox, необходимо отредактировать файл (см. здесь для подробностей). Очевидно, это работает только в том случае, если ваш сайт используется только несколькими людьми, и вы можете посещать их компьютеры и / или разговаривать с ними через это.
Вы ждете, пока истечет срок действия вашей политики HPKP. Надеюсь, у вас был короткий срок действия политики, поскольку вы просто тестировали это. Chrome ограничивает политики HPKP максимум на 60 дней (даже если вы указали более длительную политику).