Microsoft Exchange Server Auth Certificate
Když nainstalujeme první Exchange Server 2016 (patrně i 2019), tak se zároveň vystaví Self Signed certifikát Microsoft Exchange Server Auth Certificate. Má platnost 5 let a distribuuje se na všechny servery v Exchange organizaci. Používá se pro OAuth autentizaci mezi servery.
Pokud nakonfigurujeme Exchange Hybrid pomocí Hybrid Configuration Wizard (HCW), tak se standardně nastaví OAuth authentication relationship. A využije se právě certifikát Microsoft Exchange Server Auth Certificate.
Konec platnosti certifikátu a chyba OWA
Pokud uběhne 5 let, tak certifikát vyprší a automaticky se neprodlouží. Když se uživatel pokusí přihlásit do Outlook on the web, tak se po zadání přihlašovacích údajů začne načítat schránka, ale pak se zobrazí chyba.
Something went wrong X-OWA-Error Microsoft.Exchange.Security.OAuth.OAuthTokenRequestFailedException
Na certifikát se můžeme podívat klasicky pomocí certlm.msc
. Nebo Exchange Admin Center (EAC) - Servers - Certificates. Detailněji pomocí PowerShellu.
Pokud chybu hledáme na Google, tak patrně rychle nalezneme, že jde o problém s vypršením certifikátu. Ale třeba hned nenalezneme Microsoft článek, který pěkně popisuje řešení - Can't sign in to Outlook on the web or EAC if Exchange Server OAuth certificate is expired. Pokud hledáme podle určitých chyb na serveru, tak je informace v EWS Application pool crashes because the Exchange Server OAuth certificate is expired.
Stručné kroky pro nastavení nového certifikátu
Kontrola aktuálního certifikátu
Nejprve ověříme certifikát, který je použitý pro OAuth autentizaci
(Get-AuthConfig).CurrentCertificateThumbprint | Get-ExchangeCertificate | Format-List
Vytvoření a nastavení nového certifikátu
Vytvoříme nový certifikát, nesmíme přepsat defaultní SMTP certifikát, zobrazí se jeho Thumbprint, který použijeme v dalším kroku
New-ExchangeCertificate -KeySize 2048 -PrivateKeyExportable $true -SubjectName "cn=Microsoft Exchange Server Auth Certificate" -FriendlyName "Microsoft Exchange Server Auth Certificate" -DomainName @()
Nastavíme jej pro serverovou autentizaci, varování o čase potvrdíme Y
Set-AuthConfig -NewCertificateThumbprint <Thumbprint> -NewCertificateEffectiveDate (Get-Date) Set-AuthConfig -PublishCertificate Set-AuthConfig -ClearPreviousCertificate
Restartujeme službu Microsoft Exchange Service Host Service
Restart-Service MSExchangeServiceHost
Restartujeme IIS
iisreset
Smazání původního certifikátu
Můžeme smazat starý certifikát (třeba pomocí EAC).
Exchange Hybrid
Pokud máme Exchange Hybrid, tak musíme znovu spustit Hybrid Configuration Wizard. Ten provádí nastavení OAuth, konfiguruje AuthServer a přenáší náš certifikát do Azure AD. Více informací Configure OAuth authentication between Exchange and Exchange Online organizations.
Po provedení mi ještě možná 2 hodiny přihlášení do OWA nefungovalo (snažil jsem se stále řešit, ale patrně chtělo pouze počkat).
Můžeme provést kontrolu připojení pomocí Test-OAuthConnectivity
Test-OAuthConnectivity -Service EWS -TargetUri https://outlook.office365.com/ews/exchange.asmx -Mailbox bouska@firma.cz -Verbose | Format-List
Může vypršení certifikátu souviset i s problémem ActiveSync, že se občas neodešle email z mobilních zařízení?