Боюсь, но исходя из вашего исходного поста и разъяснений, клиент будет ожидать от веб-сервера того же сертификата сервера, который хранится в файле DER на клиентском устройстве. Клиент выполняет точное сравнение двоичных копий (не только открытых ключей).
Любые попытки заменить сертификат сервера приведут к сбою соединения на клиенте. Если вы планируете заменить сертификат на веб-сервере, вам также придется обновить клиентские устройства.
К сожалению, есть много ошибочных реализаций HPKP (если честно, не видел надежных реализаций), которые работают нормально, пока сертификат сервера не будет изменен. Для правильной обработки замены сертификата сервера клиент ДОЛЖЕН иметь возможность хранить как минимум два сертификата сервера , существующий и новый. Вот процесс замены сертификата сервера высокого уровня:
- заранее получить новый сертификат сервера у CA.
- обновить приложение, добавив новый сертификат параллельно. Когда клиент обновляет приложение на своем устройстве, клиентское приложение будет доверять как существующему, так и новому сертификату.
- дает клиентам время для обновления приложения на своих устройствах. В идеале вам следует подождать, пока все клиенты обновят версию приложения с обновленным сертификатом.
- изменить сертификат SSL в привязках сервера.
- через некоторое время вы можете сделать еще одно обновление для сертификата клиента, удалив сертификат с истекшим сроком хранения из хранилища доверенных сертификатов.
только эта последовательность шагов может гарантировать непрерывное возобновление закрепления сертификата.