redlord
Goto Top

Exchange 2013 Zertifikate gedöns

Ich habe hier einen Exchange 2007, einen Exchange 2013 und den krempel werf ich bald auf dem Fenster. Zu erwähnen wäre das das mal mit dem 2007 einwandfrei lief.
Ich weis ja nicht was Microsoft da mit dem ganzen Zertifikatsgedöns gebastelt hat, funktionieren tut es aber hinten und vorne nicht.

Aber mal der reihe nach

Ich habe ein vorinstalliertes Zertifikat welches automatisch installiert wird. Da steht dann aber nur der servername drin. Das hat auch erst mal so ein bissi funktioniert, wenn man die Zertifikate in die Vertrauenswürdigen Stammzertifikate installiert. Aber sobald ich ein anderes Zertifikat installieren will (ja es sind alls namen drin) gibt es nur noch Chaos. Die Outlook Clients (2010) jammern das irgendwelche namen nicht im Zertifiakt stehen würden, die aber drin stehen. Man startet das Outlook, es geht und auf einmal mitten drin jammert er ohen ersichtliche grund über ein Zertifikat was vor fünf Minuten noch in Ordnung ist. Ich meine, wenn ein Zertifikat nicht passt, ok, aber plötzlich nach fünf Minuten oder auch mal 30 .. das macht doch überhaupt kein sinn ...

Ich habe schon alles versucht, selbsigniertes Zertifkat, das dann auf den Clients installiert, über den Cert Server in der Domain (als per Request und dann eingelesen), gefühlte fün Trillionen erdenklich DNS Namen reingeschrieben usw usw es geht einfach nicht ... Die Clients bleiben irgendwann hängen es kommt ein Zertifikatsfehler und nix geht mehr . Absolut nicht nachvollziehbar warum ...

Also mit fällt jetzt nichts mehr ein ....

Content-ID: 253935

Url: https://administrator.de/contentid/253935

Ausgedruckt am: 23.11.2024 um 13:11 Uhr

Chonta
Chonta 05.11.2014 aktualisiert um 16:38:35 Uhr
Goto Top
Hallo,

mit Exchange 2013 hat MS MAPI im Prinzip abgeschafft, alles geht nur noch über https.
Wichtig ist das im Zertifikat an der richtigen Stelle alles drin steht und auch der Exchange das zertifikat verwendet und ausliefert.
Es geht auch ein selbst segniertes Zertifikat.

Bei mir machen nur XP Clients mit Outlook Probleme, ab Vista ist alles ohne Probleme und automatisch.

Gruß

Chonta

New-ExchangeCertificate
get-exchangeCertificate
Enable-ExchangeCertificate
redlord
redlord 05.11.2014 um 16:44:56 Uhr
Goto Top
Das ist mir schon klar, es geht auch immer mal wieder ... aber auf einmal nicht mehr . Ich hab ja im ecp ein neues selbsigniertes zertifikat erstellen wo alle dns namen drin standen und dieses dann per gpo verteilt . Es hat erst mal geklappt und nach ner stunde wieder das selbe und jetzt bekomme ich garkeine verbindung mehr
Chonta
Chonta 05.11.2014 um 16:47:00 Uhr
Goto Top
Wird denn noch das richtige zertifikat ausgelifert?
Stimmt was mit dem DNS-Server nicht?
Ist das Zertifikat noch auf den Clients beim anscheun Vertrauenswürdig?

Irgendwas muss an deinem Autodiscover futsch sein.

Gruß

Chonta
redlord
redlord 05.11.2014 um 18:31:53 Uhr
Goto Top
Also mir ist nichts aufgefallen autoconfig funktioniert es wird auch das richtige Zertifikat verwendet . Dann nach ca einer Stunde "es besteht ein Problem mit dem zertifikat" und die Verbindung ist weg. Nach einer weiteren halben Stunde ist die Verbindung wieder da ...
redlord
redlord 06.11.2014 um 10:05:39 Uhr
Goto Top
So mail zur Info

PS] C:\Windows\system32>get-exchangeCertificate

humbprint Services Subject
-------- -------
168F07BB891561A2D377AD9325A9BCC3311CC87 IP.WS.. CN=ankhmorpork.verwaltung.mydom.de

angemeckert wird von outlook die mail.mydom.de .. Das ist der externe DNS Name, der ist aber (ich hab gerade geschaut) in den SAN drin.
redlord
redlord 06.11.2014 um 10:37:46 Uhr
Goto Top
aber villeicht such ich auch an der ganz falschen Stelle :

Exchange Server 2013 Datenbanken unerwartet Failover in einer Umgebung Koexistenz mit Exchange Server 2007 ....

Sagt das jemand was ? Das würde erklären warum die Verbindung spordisch weg ist
Chonta
Chonta 06.11.2014 um 12:19:24 Uhr
Goto Top
Hallo,

Failover Exchange zwischen 2007 und 2013?
Geht das überhaupt und soll das wenn ja überhaupt gehen?
Wenn di eClients durch Roundrobin mal auf dem einen Server mal auf dem anderen landen und bekommen je ein anderes Zertifikat = Zonk.

Gruß

Chonta
redlord
redlord 06.11.2014 um 13:05:19 Uhr
Goto Top
Ah da hab ich mich bissi kurzgefasst face-smile Es geht natürlich nicht, aber in der CU6 versucht es wohl Exchange und fällt damit auf die Schnauze ...

im Event findest du dann solch feine Dinge :

Bei der Indizierung der Postfachdatenbank "Mailbox Database 2106866649" wurde ein unerwarteter Ausnahmefehler festgestellt. Fehlerdetails: Microsoft.Exchange.Search.Core.Abstraction.OperationFailedException: The component operation has failed. ---> Microsoft.Exchange.Search.Core.Abstraction.ComponentFailedPermanentException: Failed to read notifications, MDB: ff6bb67b-2a46-4b22-93ca-767c79fc4fbb. ---> Microsoft.Mapi.MapiExceptionMdbOffline: MapiExceptionMdbOffline: Unable to read events. (hr=0x80004005, ec=1142)
Diagnostic context:
Lid: 49384
Lid: 51176 StoreEc: 0x476
Lid: 40680 StoreEc: 0x476
Lid: 16354 StoreEc: 0x476
Lid: 38985 StoreEc: 0x476
Lid: 20098
Lid: 20585 StoreEc: 0x476
at Microsoft.Mapi.MapiExceptionHelper.InternalThrowIfErrorOrWarning(String message, Int32 hresult, Boolean allowWarnings, Int32 ec, DiagnosticContext diagCtx, Exception innerException)
at Microsoft.Mapi.MapiExceptionHelper.ThrowIfError(String message, Int32 hresult, IExInterface iUnknown, Exception innerException)
at Microsoft.Mapi.MapiEventManager.ReadEvents(Int64 startCounter, Int32 eventCountWanted, Int32 eventCountToCheck, Restriction filter, ReadEventsFlags flags, Boolean includeSid, Int64& endCounter)
at Microsoft.Exchange.Search.Mdb.NotificationsEventSource.<>c__DisplayClass3.<ReadEvents>b__1()
at Microsoft.Exchange.Search.Mdb.MapiUtil.<>c__DisplayClass1`1.<TranslateMapiExceptionsWithReturnValue>b__0()
at Microsoft.Exchange.Search.Mdb.MapiUtil.TranslateMapiExceptions(IDiagnosticsSession tracer, LocalizedString errorString, Action mapiCall)
--- End of inner exception stack trace ---
at Microsoft.Exchange.Search.Mdb.MapiUtil.TranslateMapiExceptions(IDiagnosticsSession tracer, LocalizedString errorString, Action mapiCall)
at Microsoft.Exchange.Search.Mdb.MapiUtil.TranslateMapiExceptionsWithReturnValue[TReturnValue](IDiagnosticsSession tracer, LocalizedString errorString, Func`1 mapiCall)
at Microsoft.Exchange.Search.Mdb.NotificationsEventSource.ReadEvents(Int64 startCounter, Int32 eventCountWanted, ReadEventsFlags flags, Int64& endCounter)
at Microsoft.Exchange.Search.Mdb.NotificationsEventSource.ReadFirstEventCounter()
at Microsoft.Exchange.Search.Engine.NotificationsEventSourceInfo..ctor(IWatermarkStorage watermarkStorage, INotificationsEventSource eventSource, IDiagnosticsSession diagnosticsSession, MdbInfo mdbInfo)
at Microsoft.Exchange.Search.Engine.SearchFeedingController.DetermineFeederStateAndStartFeeders()
at Microsoft.Exchange.Search.Engine.SearchFeedingController.InternalExecutionStart()
at Microsoft.Exchange.Search.Core.Common.Executable.InternalExecutionStart(Object state)
--- End of inner exception stack trace ---
at Microsoft.Exchange.Search.Core.Common.Executable.EndExecute(IAsyncResult asyncResult)
at Microsoft.Exchange.Search.Engine.SearchRootController.ExecuteComplete(IAsyncResult asyncResult)

Oder aber auch

Microsoft Exchange Server Information Store has encountered an internal logic error. Internal error text is (MasterServerOrAvailabilityGroup field must never be null) with a call stack of ( at Microsoft.Exchange.Server.Storage.Common.ErrorHelper.AssertRetail(Boolean assertCondition, String message)
at Microsoft.Exchange.Server.Storage.DirectoryServices.ADObjectWrappers.DDSCMailboxDatabaseWrapper..ctor(MailboxDatabase wrappee)
at Microsoft.Exchange.Server.Storage.DirectoryServices.ADObjectWrappers.ADSystemConfigurationSession.FindDatabaseByGuid(IExecutionContext context, Guid databaseGuid)
at Microsoft.Exchange.Server.Storage.DirectoryServices.Directory.LoadDatabaseInfoByGuid(IExecutionContext context, Guid databaseGuid)
at Microsoft.Exchange.Server.Storage.DirectoryServices.Directory.GetDatabaseInfoImplInternal(IExecutionContext context, Guid databaseGuid)
at Microsoft.Exchange.Server.Storage.DirectoryServices.Directory.GetDatabaseInfoImpl(IExecutionContext context, Guid databaseGuid)
at Microsoft.Exchange.Server.Storage.DirectoryServices.DirectoryBase.GetDatabaseInfo(IExecutionContext context, Guid databaseGuid)
at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandler.TrySetAuthenticationContext(Context context, TenantHint tenantHint, MapiSession session, AuthenticationContext authenticationContext, Boolean claimAdminPrivilegeOnTargetMailboxDatabase, Guid targetMailboxDatabaseGuid)
at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandler.FinalizeSessionConfigurationIfNeeded(Context context, TenantHint tenantHint, MapiSession session, AuthenticationContext authenticationContext, Boolean claimAdminPrivilegeOnTargetMailboxDatabase, Guid targetMailboxDatabaseGuid)
at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandler.Logon(MapiContext context, LogonFlags logonFlags, OpenFlags openFlags, StoreState storeState, LogonExtendedRequestFlags extendedFlags, Nullable`1 mailboxId, Nullable`1 localeInfo, String applicationId, AuthenticationContext authenticationContext, Byte tenantHintBlob, LogonResultFactory resultFactory)
at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandlerBase.Logon(LogonFlags logonFlags, OpenFlags openFlags, StoreState storeState, LogonExtendedRequestFlags extendedFlags, Nullable`1 mailboxId, Nullable`1 localeInfo, String applicationId, AuthenticationContext authenticationContext, Byte tenantHint, LogonResultFactory resultFactory)
at Microsoft.Exchange.RpcClientAccess.Parser.RopLogon.Execute(IConnectionInformation connection, IRopDriver ropDriver, ServerObjectHandleTable handleTable, ArraySegment`1 outputBuffer)
at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteRops(List`1 inputArraySegmentList, ServerObjectHandleTable serverObjectHandleTable, ArraySegment`1 outputBuffer, Int32 outputIndex, Int32 maxOutputSize, Boolean isOutputBufferMaxSize, Int32& outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte& fakeOut)
at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.Execute(IList`1 inputBufferArray, ArraySegment`1 outputBuffer, Int32& outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte& fakeOut)
at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.<>c__DisplayClass9.<DoRpc>b__6(MapiContext operationContext, MapiSession& session, Boolean& deregisterSession, AuxiliaryData auxiliaryData)
at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.Execute(IExecutionDiagnostics executionDiagnostics, MapiContext outerContext, String functionName, Boolean isRpc, IntPtr& contextHandle, Boolean tryLockSession, String userDn, IList`1 dataIn, Int32 sizeInMegabytes, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32& sizeAuxOut, ExecuteDelegate executeDelegate)
at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.DoRpc(IExecutionDiagnostics executionDiagnostics, IntPtr& contextHandle, IList`1 ropInArraySegments, ArraySegment`1 ropOut, Int32& sizeRopOut, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32& sizeAuxOut, Boolean fakeRequest, Byte& fakeOut)
at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcDoRpc(MapiExecutionDiagnostics executionDiagnostics, IntPtr& sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc_Unwrapped(MapiExecutionDiagnostics executionDiagnostics, IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.<>c__DisplayClassf.<EcPoolSessionDoRpc>b__c()
at Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch[T](TryDelegate tryDelegate, GenericFilterDelegate filterDelegate, GenericCatchDelegate catchDelegate, T state)
at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc(IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
at EcPoolSessionDoRpcRpc.EcDispatchCall(EcPoolSessionDoRpcRpc* , SafeRpcAsyncStateHandle pAsyncState, IPoolRpcServer server)
at PoolRpcServer_Wrapper.InternalExecute(PoolRpcServer_Wrapper* , SafeRpcAsyncStateHandle pAsyncState)
at Microsoft.Exchange.Rpc.ManagedExceptionAsyncCrashWrapper.Execute<class Microsoft::Exchange::Rpc::PoolRpc::SafeEcPoolSessionDoRpcRpcAsyncStateHandle>(ManagedExceptionAsyncCrashWrapper* , _RPC_ASYNC_STATE* pAsyncState)
at EcPoolSessionDoRpc_Managed(_RPC_ASYNC_STATE* pAsyncState, Void* cpxh, UInt32 ulSessionHandle, UInt32* pulFlags, UInt32 cbIn, Byte* rgbIn, UInt32* pcbOut, Byte ppbOut, UInt32 cbAuxIn, Byte* rgbAuxIn, UInt32* pcbAuxOut, Byte ppbAuxOut)
redlord
redlord 06.11.2014 um 15:46:16 Uhr
Goto Top
So da gibt es wohl ein Patch http://support.microsoft.com/kb/2997209/en-us

Super, nicht das man den einfach so bekommt man soll den Micorosoft Support anrufen und dafür 299 Euro bezahlen ? Die haben ja wohl nicht mehr alle Latten am Zaun ... Erst murks fabrizieren und dann soll man 299 Euro bezahlen ?

Oder übersehe ich da was?
Chonta
Chonta 06.11.2014 um 16:19:11 Uhr
Goto Top
Hallo,

2007 und 2013 sollten eigendlich nicht zusammen laufen außer für die Migration.
Und wenn der 2007 im DNS über den selbenServernamen auflösbar ist oder dessen MAPI Autokonfig die vom 2013 zu übnerschreiben.....
Mach die Migration zu Ende und werf den 2007 raus.

Habe Migration 2003 > 2010 > 2013 gemacht.

Gruß

Chonta
redlord
redlord 06.11.2014 um 16:34:22 Uhr
Goto Top
Dazu müsste die Datenbank erst mal lange genug oben sein um die Postfächer zu kopieren das bricht jetzt als ab weil die Datenbank offline geht ...