Erişim denemelerinizde karşılaşabileceğiniz “Exchange Server OWA / ECP; ASSERT: HMACProvider.GetCertificates:protectionCertificates.Length” uyarısı, çoğunlukla sunucunuzdaki SSL sertifikası yapılandırmalarından kaynaklanır. Özellikle Microsoft Exchange Server’ın Temmuz 2021 güncellemesi sonrası bu tür hatalarla daha sık karşılaşılmaktadır.
Bu güncelleme ile birlikte gelen şema genişletmesi, var olan bazı yapılandırma sorunlarını da gün yüzüne çıkarmıştır.
- Karşılaşılan hata, genellikle Microsoft Exchange Server Auth Certificate (OAuth) sertifikasının süresinin dolmuş olması veya uygun şekilde yapılandırılmamış olması nedeniyle ortaya çıkar.
- Exchange Server sunucularınızda IIS üzerinde geçerli bir SSL Sertifikası ataması yapılmadığı zaman da ECP ve OWA erişimlerinizde Problem yaşayabilirsiniz.
- Sertifikalar, Exchange Server‘ın OWA ve ECP hizmetlerine güvenli erişim sağlamak için kritik bir rol oynamaktadır.
Exchange Server Auth Certificate Nedir?
Microsoft Exchange Server Auth Certificate, Exchange Server kurulumuyla birlikte varsayılan olarak sağlanır ve beş yıllık bir geçerlilik süresine sahiptir. Günlük işlemler sırasında bu sertifikanın süresinin dolması genellikle göz ardı edilir, çünkü birçok kuruluş beş yıl içinde yeni bir Exchange Server sürümüne geçiş yapmayı planlar ve eski sistemlerini devre dışı bırakabilir.
Exchange Server, iç sunucular (ADFS gibi) ve çeşitli Exchange hizmetleriyle güvenli iletişim kurmak için Transport Layer Security (TLS) kullanır. Ancak, harici istemcilerle de düzenli iletişim kurduğu için, on-premises Exchange Server yapılandırmalarında farklı amaçlar için çeşitli sertifikalar kullanılabilir.
Bu sertifikalardan biri olan 'Microsoft Exchange Server Auth Certificate', sunucular arası kimlik doğrulama ve SharePoint Server gibi diğer servislerle iletişim kurmak için de kullanılır.
Bu sertifikanın süresi dolmadan önce yenilenmesi, kesintisiz hizmet ve güvenli veri iletişimi sağlamak için kritik öneme sahip olmaktadır.
Exchange Server, Server Error in ‘/OWA’ Application Hatası
Exchange Server’da ECP ve OWA sayfalarına erişim problemi yaşadığımız zaman aşağıdaki gibi hata alabiliriz.
Exchange Server'da OWA ve ECP sayfalarına erişim sırasında yaşadığımız bu hata genelde Auth Certificate süresi dolduğu zaman yada IIS üzerinde geçerli bir SSL sertifikası olmadığı zaman yaşanmaktadır.
[ExAssertException: ASSERT: HMACProvider.GetCertificates:protectionCertificates.Length<1] Microsoft.Exchange.Diagnostics.ExAssert.AssertInternal(String formatString, Object[] parameters) +241 Microsoft.Exchange.Diagnostics.ExAssert.RetailAssert(Boolean condition, String formatString, T1 parameter1, T2 parameter2) +2687950 Microsoft.Exchange.Clients.Common.HmacProvider.GetCertificates() +363 Microsoft.Exchange.Clients.Common.HmacProvider.GetHmacProvider() +140 Microsoft.Exchange.Clients.Common.HmacProvider.ComputeHmac(Byte[][] messageArrays) +14 Microsoft.Exchange.HttpProxy.FbaModule.SetCadataCookies(HttpApplication httpApplication) +1032 Microsoft.Exchange.HttpProxy.FbaFormPostProxyRequestHandler.HandleFbaFormPost(BackEndServer backEndServer) +3579 Microsoft.Exchange.HttpProxy.FbaFormPostProxyRequestHandler.ShouldContinueProxy() +20 Microsoft.Exchange.HttpProxy.ProxyRequestHandler.BeginProxyRequestOrRecalculate() +257 Microsoft.Exchange.HttpProxy.ProxyRequestHandler.InternalOnCalculateTargetBackEndCompleted(TargetCalculationCallbackBeacon beacon) +1528 Microsoft.Exchange.HttpProxy.<>c__DisplayClass280_0.b__0() +303
Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch(Action tryDelegate, Func2 filterDelegate, Action1 catchDelegate) +35
Microsoft.Exchange.HttpProxy.ProxyRequestHandler.CallThreadEntranceMethod(Action method) +59
[AggregateException: One or more errors occurred.]
Microsoft.Exchange.HttpProxy.ProxyRequestHandler.EndProcessRequest(IAsyncResult result) +414
System.Web.CallHandlerExecutionStep.InvokeEndHandler(IAsyncResult ar) +231
System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +172
Exchange Server ECP ve OWA Sayfalarına Erişim Probleminin Çözümü
Microsoft Exchange Server Auth Certificate Yenileme
Öncelikle, Exchange Management Shell‘i (EMS) başlatarak, aşağıdaki PowerShell komutunu kullanarak yeni bir OAuth sertifikası oluşturacağız. Bu komutta, <YourDomain.com>
kısmını kendi alan adınızla değiştirmeniz gerekmektedir:
New-ExchangeCertificate -KeySize 2048 -PrivateKeyExportable $true -SubjectName "cn=Microsoft Exchange Server Auth Certificate" -FriendlyName "Microsoft Exchange Server Auth Certificate" -DomainName "YourDomain.com"
Yeni Auth Certificate oluşturulurken, mevcut SMTP sertifikasının üzerine yazılıp yazılmayacağı sorulacaktır. Devam etmek için ‘Y’ yanıtını veriniz. Sertifika başarıyla oluşturulduğunda, alfa nümerik bir parmak izi (thumbprint) oluşturulur. Bu parmak izini, sonraki adımlarda kullanmak üzere not alınız.
Sertifikayı etkinleştirmek için aşağıdaki komutu kullanarak, yeni sertifikanın parmak izini ve etkinleşme tarihini belirtiniz:
Set-AuthConfig -NewCertificateThumbprint "YourNewCertificateThumbprint" -NewCertificateEffectiveDate (Get-Date)
Set-AuthConfig
- Bu cmdlet, Exchange sunucularında kimlik doğrulama yapılandırmasını güncellemek için kullanılır. OAuth kimlik doğrulaması ve diğer ilgili ayarlar bu cmdlet ile yönetilir.
-NewCertificateThumbprint
- Bu parametre, yeni OAuth sertifikasının parmak izini (thumbprint) belirtir. Bu değer, sertifika oluşturulduğunda elde edilen ve sertifikanın benzersiz bir tanımlayıcısı olan alfa sayısal dizedir.
-NewCertificateEffectiveDate
- Bu parametre, yeni sertifikanın geçerli olmaya başlayacağı tarihi belirtir. Genellikle bu değer, komutun çalıştırıldığı an (
Get-Date
) olarak ayarlanır, böylece sertifika hemen etkinleşir.
YourNewCertificateThumbprint
yerine gerçek bir parmak izi değeri girilerek kullanılmalıdır.
Yukarıdaki komutu çalıştırdığınızda, sertifikanın etkinleştirilmesi için onayınız istenecektir. İşlemi onaylamak için ‘Y’ yanıtını veriniz.
Yeni oluşturulan Microsoft Exchange Auth sertifikasını tüm sunucularda yayımlamak için aşağıdaki komutu çalıştırınız. Bu komut, ortamınızdaki tüm Exchange sunucularında yeni sertifikayı yayımlayacaktır:
Set-AuthConfig -PublishCertificate
Eski OAuth sertifikasının anahtarını sistemden temizlemek için aşağıdaki komutu kullanmanız yeterli olacaktır.
Set-AuthConfig -ClearPreviousCertificate
Son olarak, Microsoft Exchange Service Host hizmetini yeniden başlatmanız gerekmektedir. Bunu PowerShell üzerinden aşağıdaki komut ile yapabilirsiniz veya services.msc
üzerinden manuel olarak hizmeti yeniden başlatabilirsiniz:
Restart-Service "MSExchangeServiceHost"
Exchange Server Auth Certificate oluşturma işlemini tamamladık ve MSExchangeServiceHost servisini yeniden başlatma işlemini tamamladık. Şimdi ise IIS servislerimizi yeniden başlatmamız gerekmektedir.
IIS Yeniden Başlatma (IISRESET)
IISRESET komutu, tüm Internet Information Services (IIS) hizmetlerini yeniden başlatmanızı sağlar. Bu komut, sunucuda çalışan tüm web uygulamalarını ve web sitelerini etkiler. Komutu Komut İstemcisinde (CMD) doğrudan çalıştırabilirsiniz:
IISRESET
IIS Web App Pool Yeniden Başlatma
Exchange Server’da, ECP (Exchange Control Panel) ve OWA (Outlook Web App) için özel IIS Uygulama Havuzları (App Pools) bulunur. Bu havuzlar, belirli web uygulamalarının çalışma ortamını yönetir.
Aşağıdaki PowerShell komutları, her bir uygulama havuzunu ayrı ayrı yeniden başlatır:
Restart-WebAppPool "MSExchangeOWAAppPool"
Restart-WebAppPool "MSExchangeECPAppPool"
Auth Certificate yenileme işleminin tüm sistemde yayılması ve etkinleştirilmesi yaklaşık 2 - 3 saat sürebilmektedir. Bu süre zarfında, sertifikaların düzgün bir şekilde dağıtılabilmesi için sistemde büyük değişiklikler yapmaktan veya sunucuyu yeniden başlatma işlemleri yapılmaması gerekmektedir.
Exchange Server Auth Certificate Silme Adımları
Microsoft Exchange Server’da kullanılmayan veya eski Auth Certificate kaldırmak, önemlidir. Bu işlemi ECP (Exchange Admin Center) aracılığıyla veya Exchange Management Shell (EMS) kullanarak gerçekleştirebilirsiniz.
ECP (Exchange Admin Center) Üzerinden OAuth Sertifikasını Kaldırma
- ECP’ye giriş yaparak ‘Servers‘ sekmesine gidin ve ‘Certificates‘ bölümüne tıklayın.
- Listelenen sertifikalar arasından silmek istediğiniz eski OAuth sertifikasını bulun. Yeni oluşturduğunuz sertifikanın thumbprint’ini kullanarak doğru sertifikayı teyit edin.
- Eski sertifikanın yanındaki “Remove” butonuna tıklayarak sertifikayı sistemden kaldırın. Bu işlem, sertifikanın tamamen sistemden çıkarılmasını sağlayacaktır.
EMS (Exchange Management Shell) Üzerinden OAuth Sertifikasını Kaldırma
- EMS’i Başlatın: Exchange Management Shell’i açın.
- Mevcut tüm sertifikaları görmek için aşağıdaki komutu kullanabilirsiniz;
Get-ExchangeCertificate | Format-List Subject, Thumbprint, Services
- Kaldırmak istediğiniz sertifikanın thumbprint kodunu belirleyin.
- lgili sertifikayı aşağıdaki komut ile kaldırabilirsiniz.
Remove-ExchangeCertificate -Thumbprint "47D45E9E2A6AF54463B3FF7D3EA74B0E2C8BCC79"
Önemli Notlar
- Güvenlik Önlemleri: Sertifikayı kaldırmadan önce, bu sertifikanın sistem üzerinde başka bir işlevi olmadığından emin olun. Özellikle Hybrid ortamlarda, Azure AD ile olan entegrasyonlar bu sertifikalara bağlı olabilir.
- Yedekleme Önerisi: Sertifikayı kalıcı olarak kaldırmadan önce, en az bir hafta boyunca sertifikanın kaldırılmasının sisteme olumsuz bir etkisi olup olmadığını gözlemeniz her zanan daha sağlıklıdır.
- Hybrid Ortamlar: Eğer Hybrid bir yapılandırmanız varsa, herhangi bir sertifika değişikliği sonrasında Hybrid Configuration Wizard‘ı çalıştırarak Azure AD ile olan bağlantıların güncellendiğinden emin olun.
Exchange Server’da IIS
“Server Error in ‘/owa’ Application” hatasının çözümünden sonra, bir sonraki adımda karşılaşabileceğimiz diğer potansiyel hata kaynaklarına odaklanacağız. Bu hata, genellikle Exchange Server‘da yapılan Cumulative Update (CU) yüklemeleri sonrasında veya SSL sertifikalarında yapılan değişikliklerden kaynaklanır
Server Error in ‘/owa’ Application.
https://CY-EX01-localhost/owa/auth/errorFE.aspx?CafeError=SSLCertificateProblem
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.Exception Details: System.Web.HttpException: CY-EX01-localhost/owa/auth/errorFE.aspx?CafeError=SSLCertificateProblemSource Error:An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.Stack Trace:[HttpException (0x80004005): https://CY-EX01-localhost/owa/auth/errorFE.aspx?CafeError=SSLCertificateProblem%5D
Microsoft.Exchange.HttpProxy.FbaModule.OnBeginRequestInternal(HttpApplication httpApplication) +441
Microsoft.Exchange.HttpProxy.<>c__DisplayClass16_0.b__0() +1672
Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch(Action tryDelegate, Func1 catchDelegate) +35
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +142
System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +75
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +93Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.8.3928.02 filterDelegate, Action
Exchange Server Default Web Site SSL Yapılandırılması
- Exchange Server üzerinde IIS konsolu üzerinde Default Web Site sitesine erişim sağlanılması gerekmektedir.
- Site Bindings bölümünde bulunan HTTPS kayıtları açılarak, SSL sertifikalarının doğrul atanıp atılmadığı kontrol edilmesi gerekmektedir.
- Global CA tarafından alınmış bir SSL sertifikanız bulunuyorsa, SSL Certificate bölümünde CA üzerinden almış olduğunuz SSL sertifikasını atayabilirsiniz.
- Tüm SSL sertifika atamaları tamamlandıktan sonra, yapılan değişikliklerin etkinleşmesi için IIS reset işlemi yapılır.
- Default Web Site üzerinde bulunan tüm HTTPS kayıtlarınızda bu işlemi yapmanız gerekmektedir.
Exchange Server Exchange Back End SSL Yapılandırılması
- Exchange Server üzerinde IIS konsolu üzerinde Exchange Back End sitesine erişim sağlanılması gerekmektedir.
- Site Bindings bölümünde bulunan HTTPS kayıtları açılarak, SSL sertifikalarının doğrul atanıp atılmadığı kontrol edilmesi gerekmektedir.
- Türü HTTPS ve portu 444 olan kayıt kontrol edilir ve burada da sertifika atanmamışsa, geçerli olan SSL Sertifikası ataması yapılması gerekmektedir.
- Global CA tarafından alınmış bir SSL sertifikanız bulunuyorsa, SSL Certificate bölümünde CA üzerinden almış olduğunuz SSL sertifikasını atayabilirsiniz.
- Tüm SSL sertifika atamaları tamamlandıktan sonra, yapılan değişikliklerin etkinleşmesi için IIS reset işlemi yapılır.
Bu işlemlerin tamamlanması sonrasında, Exchange Server üzerindeki ‘OWA‘ ve ‘ECP‘ erişimlerinde sorun yaşanmadan erişim sağlayabilirsiniz.
“Exchange Server Server Error in ‘/owa’ Application” üzerine bir yorum