Что ж, я только что протестировал это (на IdentityServer4), и, похоже, он продолжает успешно работать с просроченным сертификатом подписи, вот действительность моего тестового сертификата:

Я могу войти в систему, получить токен идентификатора и токен доступа, а затем получить доступ к API с токеном доступа. Однако IdentityServer регистрирует предупреждение:
2017-07-13 12:15:54.871 +02:00 [Warning]
Certificate "CN=test_expired_signing_certificate" has expired on "13/07/2016 14:14:37"
Это соответствует тому, что говорится в документах IdentityServer (3) здесь:
IdentityServer вызывает ряд событий во время выполнения, например:
обрезать...
- Просроченный/недействительный/неподписанный сертификат
По умолчанию эти события перенаправляются настроенному поставщику журналов — настраиваемая служба событий может обрабатывать или пересылать их любым способом, подходящим для среды.
Так что это будет ваш способ обнаружить его, когда уже слишком поздно. Лучшим вариантом является периодическое обновление ключей подписи и в течение срока действия ключей. Это распространенный подход, который также позволяет при необходимости отозвать скомпрометированный ключ. См. эту проблему, где обсуждается процесс, в основном IdentityServer может обрабатывать два ключа:
[Промежуточное ПО обновляет] документ метаданных... один раз в день.
Документ с метаданными может содержать 2 ключа — первичный и вторичный, и промежуточное ПО будет загружать и использовать оба, если они присутствуют (JWT имеют идентификатор ключа, который позволяет выбрать правильный).
Когда начнете прокручивать - установите оба ключа и в какой-то момент поменяйте местами первичный и вторичный.
person
Matt
schedule
13.07.2017