На сервере с веб-сервером nginx был настроен ssl-раздел с привязкой ключей:
add_header Public-Key-Pins 'pin-sha256="some-key"; pin-sha256="second-key"; max-age=5184000;' always;
теперь срок действия сертификата истек и он был переиздан, я генерирую новую строку base64 для нового сертификата, nginx -t
показывает, что синтаксис файла конфигурации правильный, но когда я захожу на сайт, я вижу ошибку - MOZILLA_PKIX_ERROR_KEY_PINNING_FAILURE
Итак, я хочу спросить - есть ли способ обновить сертификат на сервере с закреплением ключей без простоя для пользователей?
Очистка пользовательских данных в браузере недопустима.
У вас есть несколько вариантов:
Повторно выпустить новый сертификат с тем же ключом. Лучшей практикой было бы начать с нового ключа, а не повторно использовать, так что, возможно, HPKP (предположительно хорошо для безопасности)поощряет ненадлежащие методы обеспечения безопасности.
Имейте резервный ключ / csr / certificate. Лучшая практика будет генерироваться по мере необходимости, поэтому нет шансов утечки ключа, поскольку в противном случае он должен храниться в безопасном месте, поэтому, возможно, HPKP (предположительно хорошо для безопасности) поощряет плохие методы безопасности. Фактически, HPKP распознается браузером только в том случае, если вы включаете пин-код для другого ключа в качестве функции безопасности, которая поддерживает эту опцию.
Создайте свой csr или сертификат заранее * l (по крайней мере, max-age заранее) и обновите свой Заголовок HPKP, чтобы включить новые выводы сертификата в течение максимального времени, затем переключить сертификаты и, наконец, удалить старый сертификат из заголовка HPKP. Конечно, если ключ скомпрометирован и вам нужно быстро переключиться, это не вариант, поэтому, возможно, HPKP (предположительно хороший для безопасности) поощряет плохие методы безопасности.
Включите промежуточный / корневой сертификат в вашу политику HPKP. Надеюсь, что ваш центр сертификации никогда, никогда не изменит промежуточные или корни, не прекратит работу, или что вы захотите сменить центр сертификации. Если что-то из этого произойдет, то вас обидят.
Забудьте об этом и блокируйте свой сайт для большей части пользователей на время его существования, когда вам нужно повторно выпустить сертификат. Безопасность для этого варианта хороша, но его полезность значительно ниже.
Мои комментарии - вот некоторые из многих причин, по которым HPKP удаляется из браузеров - это было непрактичной идеей, для большинства это было излишним сайтов, если посмотреть на дополнительную безопасность, которую он приносит, по сравнению с дополнительными рисками (как я писал здесь ).