Как обновить ssl-сертификат с истекшим сроком действия на сервере с помощью закрепления ключей (hpkp)
На сервере с веб-сервером 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
Поэтому я хочу спросить - есть ли способ обновить сертификат на сервере с помощью закрепления ключей без простоев для пользователей?
Очистка пользовательских данных в браузере недопустима.
1 ответ
У вас есть несколько вариантов:
Повторите новый сертификат с того же ключа. Лучше всего начинать с нового ключа, а не с его повторного использования, так что, возможно, HPKP (предположительно, хороший для безопасности) поощряет плохие методы безопасности.
Иметь резервный ключ / csr / certificate. Лучшая практика будет генерироваться, когда это необходимо, поэтому нет шансов утечки ключа, так как в противном случае его необходимо надежно хранить, поэтому, возможно, HPKP (предположительно, хороший для безопасности) поощряет плохие методы безопасности. Фактически HPKP распознается браузером только в том случае, если вы добавите булавку для другого ключа в качестве функции безопасности, которая поддерживает эту опцию.
Создайте свой CSR или сертификат заранее * l (по крайней мере, максимальный возраст заранее) и обновите заголовок HPKP, включив в него новые контакты сертификата для максимального времени, затем переключите сертификаты и, наконец, удалите старый сертификат из заголовка HPKP. Конечно, если ключ скомпрометирован и вам нужно быстро переключиться, тогда это не вариант, поэтому, вероятно, HPKP (предположительно, хороший для безопасности) поощряет плохие методы безопасности.
Включите промежуточный / корневой сертификат в вашу политику HPKP. Надеюсь, что ваш CA никогда, никогда не меняет промежуточные звенья или корни, или выходит из бизнеса, или что вы хотите сменить CA. Если что-то из этого случится, вы одурачены.
Забудьте об этом и сделайте свой сайт доступным для значительной части пользователей на весь срок действия вашего сайта, когда вам нужно будет переиздать свой сертификат. Безопасность отлично подходит для этой опции, но полезность значительно ниже.
Мои комментарии здесь являются одними из многих причин, по которым HPKP удаляется из браузеров - это была непрактичная идея, которая была излишней для большинства сайтов, когда вы смотрели на дополнительную безопасность, которую она принесла, по сравнению с рисками, которые она добавила (о чем я писал здесь),