Sql-server – Multi Session Mirroring using 1 witness server, cannot find certificate

awsmirroringsql serversql server 2014

I am trying to use 1 witness server for 2 mirrored databases that reside on different servers.

For example:

db1 on server(A) mirrored to server(B) using witness server(1), and

db2 on server(C) mirrored to server(D) using witness server(1)

However, High Safety using witness server(1) only works with db1 mirrored session.
When trying to set the witness on db2 session, I get error message:

The ALTER DATABASE command could not be sent to the remote server instance 'TCP://witness server(1)'. The database mirroring configuration was not changed. Verify that the server is connected, and try again.

Mirroring is up and working on the first db1 using witness1, and mirroring also works with db2 between server (C) & (D), however the second db on server(2) is unable to connect to the witness server(1). The witness shows this error: Message

Database Mirroring login attempt failed with error: 'Connection handshake failed. The certificate used by the peer is invalid due to the following reason: Certificate not found. State 89.' Client x.x.x.x

I copied the original witness server cert over to both db2 primary/secondary servers. All 3 certs are on each server. I am not using AD, just SQL Auth, and Certificates.

Microsoft Documentation suggests that a Witness can be used in multiple sessions here: http://msdn.microsoft.com/en-us/library/ms175191.aspx

Any help would be fantastic! (I'm Using SQL Server 2014 Std on Windows 2012R2 x64 machines in AWS)

Best Answer

The answer is in the error - you will need to make sure that both servers i.e. the new db server and the witness can communicate using the certificate in question.

There will be a certificate for each individual server and must exist on witness as well. So witness cert on the p/m servers and vice-versa