This document combines several Cisco resources into a complete, unified how-to guide that is used in order to implement all of the requirements for certificate validation in Cisco Jabber. This is necessary because Cisco Jabber now requires the use of certificate validation in order to establish secure connections with servers. This requirement entails many changes that might be required for user environments.
Here is a table that lists all of the clients that implement certificate validation:
Table 1
Desktop Clients | Mobile and Tablet Clients |
---|---|
Jabber for Macintosh Version 9.2 (September 2013) | Jabber for iPhone Version 9.5 (October 2013) |
Jabber for Microsoft (MS) Windows Version 9.2.5 (September 2013) | Jabber for iPhone and iPad Version 9.6 (November 2013) |
Jabber for Android Version 9.6 (December 2013) |
When you install or upgrade to any client listed in Table 1, mandatory certificate validation with servers is used for secure connections. Essentially, when Jabber Clients attempt to make a secure connection now, servers present Cisco Jabber with certificates. Cisco Jabber then attempts to validate those certificates against the certificate store of the device. If the client cannot validate the certificate, it prompts you to confirm that you want to accept the certificate, and place it in its Enterprise Trust store.
Here is a list of on-premise servers and the certificates that they present to Cisco Jabber in order to establish a secure connection:
Table 2
Server | Certificate |
---|---|
Cisco Unified Presence | HTTP (Tomcat) XMPP |
Cisco Unified Communications Manager IM and Presence | HTTP (Tomcat) XMPP |
Cisco Unified Communications Manager | HTTP (Tomcat) |
Cisco Unity Connection | HTTP (Tomcat) |
Cisco WebEx Meetings Server | HTTP (Tomcat) |
Here are some important points to note:
There are currently several methods of certification validation that can be used.
Method 1: Users simply click Accept to all certificate popups. This might be the most ideal solution for smaller environments. If you click Accept, certificates are placed into the Enterprise Trust store on the device. After certificates are placed in the Enterprise Trust store, users are no longer prompted when they log into the Jabber Client on that local device.
Method 2: The required certificates (Table 2) are downloaded from the individual servers (by default, these are self-signed certificates) and installed into the Enterprise Trust store of the user device. This might be the ideal solution if your environment does not have access to a Private or Public CA for certificate signing.
Several methods can be used in order to push these certificates to users, but one quick method is to employ the use of the Microsoft Windows Registry:
This completes the install of Enterprise Trust Certificates for Jabber, and users are no longer prompted.
Method 3: A Public or Private CA (Table 2) signs all of the required certificates. This is the Cisco recommended method. This method requires that a Certificate Signing Request (CSR) is generated for each of the certificates, is signed, re-uploaded to the server, and then imported to the Trusted Root Certificate Authorities Store on user devices. See the Generate a CSR and the How do I get certificates to user devices certificate stores? sections of this document for more information.
It is important to remember that Public CAs typically require CSRs in order to conform to specific formats. For example, a public CA might only accept CSRs that:
Likewise, if you submit CSRs from multiple nodes, public CAs might require that the information is consistent in all CSRs.
In order to prevent issues with your CSRs, review the format requirements from the public CA to which you plan to submit the CSRs. Then ensure that the information you enter when you configure your server conforms to the format that the public CA requires.
Here is a possible requirement you might encounter:
One Certificate Per FQDN: Some public CAs sign only one certificate per fully qualified domain name (FQDN).
For example, in order to sign the HTTP and XMPP certificates for a single CUCM IM and Presence node, you might need to submit each CSR to different public CAs.
Example: Self-Signed vs Private CA-Signed Certificate
Self-Signed Private CA-Signed
Every server certificate should have an associated root certificate present in the trust store on the user device. Cisco Jabber validates the certificates that servers present against the root certificates in the trust store.
Import root certificates into the MS Windows certificate store if:
You can use any appropriate method in order to import certificates into the MS Windows certificate store, such as:
As part of the signing process, the CA specifies the server identity in the certificate. When the client validates that certificate, it checks that:
The client checks these identifier fields in the server certificates for an identity match:
When a Jabber Client attempts to connect to a server with an IP address, and the server certificate identifies the server with an FQDN, the client cannot identify the server as trusted and prompts the user. So, if your server certificates identify the servers with FQDNs, you must specify the server name as FQDN in many places on your servers.
Table 3 lists all of the places that need to specify the server name as it appears in the certificate, whether it is an IP address or a FQDN.
Table 3
Server | Location (Setting must Match Certificate) |
---|---|
Cisco Jabber Clients |
Login Server Address (Differs for clients, normally under Connection Settings) |
CUP (Version 8.x and earlier) |
** All Node Names (System > Cluster Topology) **Caution: Make sure that if you change this to FQDN, you can resolve this via DNS or the servers remain in the starting state! TFTP Servers (Application > Cisco Jabber > Settings) Primary and Secondary Cisco Call Manager Cisco IP Phone (CCMCIP) (Application > Cisco Jabber > CCMCIP Profile) Voicemail Host Name (Application > Cisco Jabber > Voicemail Server) Mailstore Name (Application > Cisco Jabber > Mailstore) Conferencing Host Name (Application > Cisco Jabber > Conferencing Server) (Meeting Place Only) XMPP Domain (See the Provide XMPP Domain to Clients section) |
CUCM IM and Presence (Version 9.x and later) |
**All Node Names (System > Cluster Topology) **Caution: Make sure that if you change this to FQDN, you can resolve this via DNS or the servers remain in the starting state! TFTP Servers (Application > Legacy Clients > Settings) Primary and Secondary CCMCIP (Application > Legacy Clients > CCMCIP Profile) XMPP Domain (See the Provide XMPP Domain to Clients section) |
CUCM (Version 8.x and earlier) |
Server Name (System > Server) |
CUCM (Version 9.x and later) |
Server Name (System > Server) IM and Presence Server (User Management > User Settings > UC Service > IM and Presence) Voicemail Host Name (User Management > User Settings > UC Service > Voicemail) Mailstore Name (User Management > User Settings > UC Service > Mailstore) Conferencing Host Name ((User Management > User Settings > UC Service > Conferencing) (Meeting Place Only) |
Cisco Unity Connection (All versions) |
No Change needed |
The client identifies XMPP certificates with the XMPP domain, rather than with the FQDN. The XMPP certificates must contain the XMPP domain in an identifier field.
When the client attempts to connect to the presence server, the presence server provides the XMPP domain to the client. The client can then validate the identity of the presence server against the XMPP certificate.
Complete these steps in order to ensure that the presence server provides the XMPP domain to the client:
Certificate Validation is now complete!