Secure connections to an IBM MQ queue manager

To enable an XMS .NET application to make secure connections to an IBM® MQ queue manager, the relevant properties must be defined in the ConnectionFactory object.

The protocol used in the encryption negotiation can be either Secure Sockets Layer (SSL) or Transport Layer Security (TLS), depending on which CipherSuite you specify in the ConnectionFactory object.

If you use the IBM WebSphere® MQ 7.0.0 Fix Pack 1 and later client libraries and connect to an IBM WebSphere MQ 7.0 queue manager, then you can create multiple connections to same queue manager in XMS application. However connection to different queue manager is not permitted. If you attempt, you get the MQRC_SSL_ALREADY_INITIALIZED error.

If you use the IBM WebSphere MQ 6.0 and later client libraries, then you can create a SSL connection only if you close any previous SSL connection first. Multiple concurrent SSL connections from the same process to the same or different queue managers are not permitted. If you attempt more than one request, you get the warning MQRC_SSL_ALREADY_INITIALIZED, which might mean that some requested parameters for the SSL connection were ignored.

ConnectionFactory properties for connections via SSL to an IBM MQ queue manager, with a brief description, are shown in the following table:

Table 1. Properties of ConnectionFactory for connections to an IBM MQ queue manager via SSL
Name of property Description
XMSC_WMQ_SSL_CERT_STORES The locations of the servers that hold the certificate revocation lists (CRLs) to be used on an SSL connection to a queue manager.
XMSC_WMQ_SSL_CIPHER_SPEC The name of the CipherSpec to be used on a secure connection to a queue manager.
XMSC_WMQ_SSL_CIPHER_SUITE The name of the CipherSuite to be used on a TLS connection to a queue manager. The protocol used in negotiating the secure connection depends on the specified CipherSuite.
XMSC_WMQ_SSL_CRYPTO_HW Configuration details for the cryptographic hardware connected to the client system.
XMSC_WMQ_SSL_FIPS_REQUIRED The value of this property determines whether an application can or cannot use non-FIPS compliant cipher suites. If this property is set to true, only FIPS algorithms are used for the client-server connection.
XMSC_WMQ_SSL_KEY_REPOSITORY The location of the key database file in which keys and certificates are stored.
XMSC_WMQ_SSL_KEY_RESETCOUNT The KeyResetCount represents the total number of unencrypted bytes sent and received within an SSL conversation before the secret key is renegotiated.
XMSC_WMQ_SSL_PEER_NAME The peer name to be used on an SSL connection to a queue manager.