1.Yes. In a active/standby config, not active/active.
2.FQDN. The old way for a browser or SIP client to validate a server's cert was ensuring the CN of the cert = the FQDN. Current way is to make sure that FQDN is in the subjectAltName. Ctrl+F "RFC 2818" in a 46xxettings file.
Code:
If a subjectAltName extension of type dNSName is present, that MUST
be used as the identity. Otherwise, the (most specific) Common Name
field in the Subject field of the certificate MUST be used. Although
the use of the Common Name is existing practice, it is deprecated and
Certification Authorities are encouraged to use the dNSName instead.
What that means is if you use IP on Equinox, and say, put the SMGR CA cert in the client so it trusts certs offered by SM signed by SMGR (or the Windows CA, it doesn't matter) the Equinox client will reject it if subjectAltName does not match what you put as the server in the client. IP in client, FQDN in cert - or vice versa = TLS failure. That's to say you may trust the issuer of the cert, but not the entity presenting it to you. That's like me stealing your driver's license and giving it to a cop. Yes, it's a real license issued by your state DMV, but the ugly dude handing it to the cop looks nothing like the guy's picture on the license.
You can add both IP+fqdn as multiple subjectAltNames to mitigate that.
3. The SBC, as a "server" must offer a certificate the clients trust. So, sbccert.com signed by the Windows DC is fine. It can ALSO do mutual TLS authentication requiring a cert to be offered from the client asking for service. SM can as well - there's a tickbox called Mutual TLS Authentication in SM Administration. In the SBC, under TLS management, in client and server profiles, you have peer verification. If enabled, then the client must offer a cert signed by a CA that the SBC trusts. Also, when you're doing that, the cert installed on the client must be in a format that includes the private key. The client will offer the public key of that cert to the SBC, the SBC will be cool with that because it trusts the CA that signed it, but the client still needs the private key of the cert to be able to be able to decipher the SBCs response. All of that private key PKCS12 stuff happens in the background for, say, a SM when you initTM to enroll it to System Manager.
The very nature of PKI makes it so that the CA signing your cert has no idea what your private key happens to be. I can make a key pair, sign a csr with it (so that it may only be decrypted by the PUBLIC key), then SMGR or a Windows CA open it with the public key offered and sign it. Once signed, that public key is in the cert, but the CA never had any idea what the associated private key was. Only the generator of the key is in control of that. If that cert ever needs to be used to be presented to authenticate identity, the presenter of that certificate must be able to prove ownership of the private key. He does that by proving he successfully decoded a message from the other guy that was encrypted with the public key.
To have your Equinox or anything else do that, it needs a PCKS12.
Here's a quick tutorial:
On any linux box with openssl:
openssl genrsa -des3 -out test.key 2048
You'll make a passphrase for your key. Anything is fine.
openssl req -new -key test.key -out test.csr
Before it continues, you'll need to enter the passphrase entered in the step below to prove it's your key. Don't enter a password in the final step when it wraps up. Not the same thing.
You can use a period as a blank to not fill in any fields you don't want to. To be honest, they're all pretty much optional because the template in the CA can re-assign them. Also, the default fields openssl will ask for don't necessarily include the extra fields you need like subjectAltName anyway.
Now, toss test.csr into your CA - either copy/paste, send the file, whatever, and sign the cert. Put that test.crt in the same folder as test.key and test.csr.
openssl pkcs12 -export -out test.pfx -inkey test.key -in test.crt
Enter the passphrase for your key again and test.pfx is now a PKCS12 cert you can give to an app to prove to a server you're trusted.
You may need to add "-certfile CACert.crt" at the end - though I don't have to when SMGR signs because it includes the validation chain. That's to say what comes out of SMGR's CA is a cert called test that includes the SMGR CA cert. If your CA doesn't do that, you'll need the -certfile switch.
I know it's convoluted. But here's why it matters:
When establishing one way or two way TLS - who is trying to prove they're trustworthy?
When I go to my bank's website or when someone sends me a link to join a Webex, I'm John Q Public the client and they're the server that wants my personal information - that could be my debit card number or access to my PCs webcam and microphone. I have nothing to prove who I am and they'd better prove to me they're worth giving my personal information to.
When your user has an Equinox client and they need a TLS session to send a SIP REGISTER message, you WILL need to prove to them you're trustworthy just like the bank's website does and because of the nature of the server, you may darn well want them to prove they have more than just a username and password but also a security document you can verify was issued by you. That's why mutual TLS authentcation matters and you use PKCS12s to prove that.
Without it, equinox.you.com is publically resolvable. Odds are that the SBC will offer it's cert signed by your domain with the whole validation chain (to say, your SMGR or Windows domain CA cert). I wireshark my handshake to you, see it fail, capture your CA cert and tell my PC to trust it. Now, I can try registering to you with a username and password.
If your TLS is only 1 way - and the only one way it can be is for the server to prove trustworthiness, not the client. Then I, as a malicious client, may decide to trust you. Now you will process my login attempts and maybe I'll get lucky on the guy who's password is 1234.
It took me a while to get my head around this stuff and this is the simplest I think I can explain it. I wish I could have had the benefit of someone spelling things out this way because I'd have caught on a lot sooner. That being the case, ask questions if anything I said wasn't clear.