Every MQ SSL Error

SSL errors on IBM MQ stop traffic before a single business message moves: the TCP connection may succeed, then GSKit fails the TLS handshake, and the channel never reaches RUNNING. Operations sees RETRY loops; developers may see connection exceptions without a clear 2035 because authority never ran. This encyclopedia page catalogs SSL and TLS failure modes—AMQ messages, MQRC codes, CHSTATUS symptoms, and the fix order that avoids whack-a-mole certificate imports. Pair this reference with tls-configuration and gskit tutorials for hands-on setup; use this page during incidents when you need a checklist, not a lecture.

SSL Error Layers on MQ

Layer one: TCP and listener reachability. Layer two: TLS handshake (certificates, cipher, protocol version). Layer three: CHLAUTH and certificate DN mapping. Layer four: MCAUSER and OAM on SVRCONN after connect. SSL errors belong to layer two unless evidence points elsewhere. Misdiagnosing layer four while layer two fails wastes hours of setmqaut changes.

SSL-related MQRC codes
MQRCNameMeaningTypical action
2393SSL_INITIALIZATION_ERRORCannot init TLS environmentSSLKEYR path, kdb permissions, GSKit install
2397SSL_NOT_ALLOWEDPolicy requires SSL; plain usedSet SSLCIPH on channel and client CCDT
2395SSL_CERTIFICATE_ERRORCert validation failedChain, expiry, label, trust store
2396SSL_PEER_NAME_ERRORPeer name mismatchSSLPEER, hostname verification rules

AMQ SSL Message Families

AMQ9638 and AMQ9616 appear frequently in AMQERR during handshake failure. Text may reference cipher specification, bad certificate, or GSKit return codes. Copy the full line including any GSKit reason subcodes. AMQ9208 may follow if the channel enters retry after TLS failure—do not assume transport failure when SSL text is present in the same second.

Common AMQ SSL messages
Message IDTypical causeFix order
AMQ9638Handshake failureCipher, then cert chain, then label
AMQ9616GSKit / policyFIPS mode, repository permissions
AMQ9208Channel retry after SSL failFix TLS first, then channel reset
AMQ8077Post-TLS CHLAUTH blockAfter handshake green, tune CHLAUTH

Cipher Mismatch (SSLCIPH)

SSLCIPH names the cipher specification GSKit negotiates. Both ends must support a common suite. Enterprises standardize one string per environment documented in the connection handbook. After MQ upgrade, verify deprecated ciphers were not removed from GSKit while channels still reference old names. Compare DISPLAY CHANNEL SSLCIPH on both queue managers and client CCDT. Lab test with one known-good cipher before enabling stricter policy in production.

Certificate and Key Repository Errors

The queue manager uses SSLKEYR to locate the key database (kdb) and stash files. CERTLABL selects which personal certificate presents to the partner. Expired certificates produce clear not-after errors when you runmqakm -cert -list or openssl inspection on exported certs. Missing intermediate CA in the kdb causes partner trust failure even when your cert looks valid locally. Renewal requires import, label update if the DN changed, and coordinated partner trust store updates for mutual TLS.

shell
1
2
3
4
5
# Distributed example checks DISPLAY QMGR SSLKEYR SSLCRYP DISPLAY CHANNEL('PARIS.TO.LONDON') SSLCIPH SSLCAUTH CERTLABL runmqakm -cert -list all -db /path/to/key.kdb -stashed DISPLAY CHSTATUS('PARIS.TO.LONDON') LASTCHLERR

SSLCAUTH and Mutual TLS

SSLCAUTH OPTIONAL allows TLS encryption without requiring a client certificate. SSLCAUTH REQUIRED demands a partner cert trusted by your repository—common for B2B. If the sender presents no client cert while receiver requires one, handshake fails before MCAUSER matters. Client SVRCONN connections need personal certs in the client key repository when REQUIRED is set on the channel or CCDT.

CHSTATUS and LASTCHLERR

DISPLAY CHSTATUS shows state RETRY, BINDING, or INACTIVE with LASTCHLERR text during SSL problems. Capture CHSTATUS from both ends with the same timestamp. PING CHANNEL does not replace TLS verification—it exercises MQ protocol after connect. Use a controlled START CHANNEL or client connect for SSL tests during change windows.

GSKit Trace When AMQ Is Not Enough

  1. Reproduce one failed connect in a maintenance window.
  2. Enable GSKit trace on both endpoints per IBM doc for your OS.
  3. Compare ClientHello cipher lists with SSLCIPH.
  4. Verify certificate chain building in trace.
  5. Disable trace; archive files for support if needed.

SSL Errors Versus 2035

MQRC 2035 NOT_AUTHORIZED after RUNNING channel means OAM or put authority. SSL errors block RUNNING entirely. If your monitor shows channel RUNNING but PUT fails with 2035, SSL is not the current problem. If channel never RUNNING and AMQ9638 repeats, do not grant blanket mqm authority—fix TLS.

Explainer: SSL as the Sealed Envelope

Messages travel inside an envelope only the post office can open if seals match. Wrong stamp (cipher), expired ID (certificate), or missing return address (client cert when required) means the post office rejects the bag before sorting mail into queues.

Explain Like I'm Five: SSL Errors

Two secret clubs have special keys to open a box. If the keys do not fit or one key expired, the box never opens and letters stay in the hallway.

Practice Exercises

Exercise 1

Document SSLCIPH and CERTLABL for one production channel pair.

Exercise 2

Provoke cipher mismatch in lab; capture AMQ9638 and LASTCHLERR.

Exercise 3

Write renewal runbook: PKI ticket, import, test, partner trust update.

Frequently Asked Questions

Frequently Asked Questions

Test Your Knowledge

Test Your Knowledge

1. AMQ9638 usually indicates:

  • SSL/TLS problem
  • Queue full
  • Trigger fired
  • Archive success

2. MQRC 2393 is:

  • SSL initialization error
  • NOT_AUTHORIZED
  • NO_MSG_AVAILABLE
  • QM_STOPPING

3. Both channel ends need:

  • Compatible SSLCIPH negotiation
  • Identical queue names only
  • Same MAXDEPTH
  • Same DEFPSIST

4. SSLCAUTH REQUIRED means:

  • Partner must present trusted client cert
  • No TLS needed
  • Disable CHLAUTH
  • Use FTP
Published
Read time26 min
AuthorMainframeMaster
Verified: IBM MQ 9.4 SSL documentation