The Magician

This is an old revision of the document!


Проверка и переиздание сертификатов OAuth

В Exchange существует самоподписанный бэкенд-сертификат, который используется внутри Exchange и он же присвоен для сайта Exchange Backend. В случае, если этот сертификат истёк - могут быть некоторые проблемы. В частности, проблема возникла при установке патча безопасности KB5004778 (июль 2021), после установки которого отвалилась OWA и ECP. При этом, сертификат недостаточно было продлить в ECP.

В Exchange с ADFS окружением может наблюдаться следующая картина: при попытке открыть OWA или ECP в браузере увидим такую ошибку:

Microsoft.Exchange.Security.Authentication.AdfsConfigurationException: Encryption certificate is absent

Проверить сертификат можно следующим командлетом:

(Get-AuthConfig).CurrentCertificateThumbprint | Get-ExchangeCertificate | Format-List

Если сертификат просрочен, или команда возвращает ошибку (либо вообще ПУСТОЙ вывод), его следует сначала создать:

New-ExchangeCertificate -KeySize 2048 -PrivateKeyExportable $true -SubjectName "cn=Microsoft Exchange Server Auth Certificate" -FriendlyName "Microsoft Exchange Server Auth Certificate" -DomainName @()

:!: Команда выше создаст auth-сертификат сроком на 5 лет. Есть теоретическая возможность выпуска auth-сертификата сроком более 5 лет, однако, для этого придется использовать свой CA + эта возможность НЕ ДОКУМЕНТИРОВАНА Microsoft и существует риск возникновения нештатных проблем.

Теперь новый сертификат необходимо назначить серверу и опубликовать, используя отпечаток из предыдущего командлета:

Set-AuthConfig -NewCertificateThumbprint <ThumbprintFromStep1> -NewCertificateEffectiveDate (Get-Date)
Set-AuthConfig -PublishCertificate
Set-AuthConfig -ClearPreviousCertificate

:!: В окружении из нескольких серверов Exchange - издаем и публикуем сертификат ОДИН раз, на любом сервере. На остальные серверы данный сертификат распространится автоматически.

После этого следует перезагрузить службу MSExchangeServiceHost и IIS:

Restart-Service "MSExchangeServiceHost"
IISReset

Если жёсткий рестарт IIS не преемлем, можо перезапустить пулы:

Restart-WebAppPool MSExchangeOWAAppPool
Restart-WebAppPool MSExchangeECPAppPool

ВАЖНО: публикация сертификата происходит не сразу - в случае с проблемным патчем OWA заработала только через несколько часов (два-четыре). Возможно, это связано с расхождением установленной таймзоны с временем UTC. Возможно, в случае каких-либо проблем стоит также проверить - назначен ли нужный сертификат в привязках сайта Exchange backend.

https://docs.microsoft.com/en-gb/exchange/troubleshoot/administration/cannot-access-owa-or-ecp-if-oauth-expired

переиздание_сертификатов_oauth.1778855200.txt.gz · Last modified: by jp