Autenticazione di client e server TLS

È possibile eseguire MQIPT come server e client TLS per terminare la sessione TLS in entrata e inoltrare i dati alla destinazione utilizzando una connessione TLS separata.

Prima di iniziare

Nota: questo scenario utilizza certificati autofirmati per comodità. Non utilizzare alcun certificato autofirmato negli ambienti di produzione. Invece, ottenere i certificati firmati da una CA (Certificate Authority) attendibile.

Informazioni su questa attività

La connessione viene effettuata tra un client di IBM MQ e un server IBM MQ tramite una singola istanza di MQIPT. Le connessioni tra il client IBM MQ e MQIPTe tra MQIPT e il server IBM MQ , utilizzano entrambe TLS. Pertanto, l'instradamento MQIPT è sia un server TLS che un client TLS.

Durante l'handshake TLS fra il client e MQIPT, il client e MQIPT inviano i loro certificati l'un l'altro per autenticare la connessione. Quando viene stabilita la connessione tra client e MQIPT , MQIPT stabilisce una connessione TLS separata al server IBM MQ . MQIPT e il server IBM MQ inviano i certificati l'uno all'altro per autenticare la connessione.

Figura 1. Diagramma di rete server e client SSL/TLS
Consultare il testo.

Questo diagramma mostra la connessione dal client IBM MQ (denominato client1.company1.com) tramite una singola istanza di MQIPT al server IBM MQ (denominato server1.company2.com sulla porta 1414).

Procedura

Per configurare una rotta MQIPT sia come server TLS che come client TLS, completa la seguente procedura:

  1. Sul sistema in cui viene eseguito il client, completare la seguente procedura per configurare il client IBM MQ per utilizzare una connessione TLS.
    1. Creare un repository chiavi per il client
      Immettere il seguente comando per creare un nuovo repository chiavi denominato clientkey.kdb nella directory C:\ProgramData\IBM\MQ :
      runmqakm -keydb -create -db C:\ProgramData\IBM\MQ\clientkey.kdb -pw password -stash
      dove password è la password del repository delle chiavi.
    2. Creare un certificato personale per il client, nel repository delle chiavi del client creato nel passo 1.a.
      Immettere il comando riportato di seguito per creare un nuovo certificato autofirmato con etichetta clientcert per il client:
      runmqakm -cert -create -db C:\ProgramData\IBM\MQ\clientkey.kdb -stashed
               -label clientcert -dn CN=Client
    3. Estrarre il certificato dal repository delle chiavi client
      Immettere il comando seguente per estrarre il certificato client:
      runmqakm -cert -extract -db C:\ProgramData\IBM\MQ\clientkey.kdb -stashed -label clientcert
               -target C:\ProgramData\IBM\MQ\client.crt -format ascii
    4. Copiare il file del certificato estratto nel sistema in cui viene eseguito MQIPT .
  2. Sul sistema su cui è in esecuzione il server IBM MQ , completare la seguente procedura per configurare il gestore code in modo che utilizzi una connessione TLS.
    1. Creare un repository delle chiavi per il gestore code.
      Immettere il seguente comando per creare un repository delle chiavi denominato key.kdb per il gestore code.
      runmqakm -keydb -create -db C:\ProgramData\IBM\MQ\qmgrs\MQIPT!QM1\ssl\key.kdb -pw password -stash
      dove password è la password del repository delle chiavi.
      Assicurarsi che all'utente mqm sia concesso l'accesso in lettura al file stash C:\ProgramData\IBM\MQ\qmgrs\MQIPT!QM1\ssl\key.sth creato dal comando per memorizzare la password del repository delle chiavi codificata.
    2. Creare un certificato personale per un gestore code, nel contenitore di chiavi del gestore code creato al passo 2.a.
      Immettere il comando riportato di seguito per creare un nuovo certificato autofirmato con etichetta ibmwebspheremqmqipt.qm1 per il gestore code:
      runmqakm -cert -create -db C:\ProgramData\IBM\MQ\qmgrs\MQIPT!QM1\ssl\key.kdb -stashed
               -label ibmwebspheremqmqipt.qm1 -dn CN=MQIPT.QM1
    3. Estrarre il certificato da un repository delle chiavi del gestore code
      Immettere il seguente comando per estrarre il certificato gestore code:
      runmqakm -cert -extract -db C:\ProgramData\IBM\MQ\qmgrs\MQIPT!QM1\ssl\key.kdb -stashed -label ibmwebspheremqmqipt.qm1
               -target C:\ProgramData\IBM\MQ\qmgrs\MQIPT!QM1\ssl\mqipt.qm1.crt -format ascii
    4. Copiare il file del certificato estratto nel sistema in cui viene eseguito MQIPT .
    5. Eseguire il comando MQSC riportato di seguito per modificare l'MQIPT MQIPT.CONN.CHANNEL canale di connessione server per utilizzare TLS:
      ALTER CHANNEL(MQIPT.CONN.CHANNEL) CHLTYPE(SVRCONN) TRPTYPE(TCP) SSLCIPH(ANY_TLS12_OR_HIGHER)
  3. Sul sistema in cui viene eseguito MQIPT , completare la seguente procedura per configurare l'instradamento MQIPT per utilizzare TLS.
    1. Creare un certificato personale per MQIPT in un repository chiavi PKCS #12 .
      [MQ 9.4.0 giu 2024][MQ 9.4.0 giu 2024]Immettere il comando seguente per creare un nuovo certificato autofirmato con l'etichetta mqiptcert:
      mqiptKeytool -genkeypair -keystore C:\mqiptHome\ssl\mqipt.p12 -storetype pkcs12 -storepass password
                  -alias mqiptcert -dname "CN=MQIPT Test Certificate"
                  -keyalg RSA -keysize 2048 -sigalg SHA256WithRSA
      dove password è la password del repository delle chiavi.
    2. Immettere il seguente comando per aggiungere il certificato client e il certificato gestore code al repository delle chiavi MQIPT :
      [MQ 9.4.0 giu 2024][MQ 9.4.0 giu 2024]
      mqiptKeytool -importcert -keystore C:\mqiptHome\ssl\mqipt.p12 -storetype pkcs12 -storepass password -file client.crt
      mqiptKeytool -importcert -keystore C:\mqiptHome\ssl\mqipt.p12 -storetype pkcs12 -storepass password -file mqipt.qm1.crt
      dove password è la password del repository delle chiavi, client.crt è il file del certificato client creato nel passaggio 1.ce mqipt.qm1.crt è il certificato del gestore code creato nel passaggio 2.c.
    3. Estrarre il certificato MQIPT dal repository delle chiavi.
      [MQ 9.4.0 giu 2024][MQ 9.4.0 giu 2024]Immettere il seguente comando per estrarre il certificato MQIPT :
      mqiptKeytool -exportcert -keystore C:\mqiptHome\ssl\mqipt.p12 -storetype pkcs12 -storepass password
                  -alias mqiptcert -file C:\mqiptHome\ssl\mqipt.crt -rfc
      dove password è la password del repository delle chiavi.
    4. Copiare il file del certificato estratto sul sistema su cui viene eseguito il client e sul sistema su cui viene eseguito il server IBM MQ .
    5. Immettere il seguente comando per codificare la password del repository chiavi MQIPT :
      mqiptPW
      Quando richiesto, immettere la password del repository delle chiavi specificata al momento della creazione del repository delle chiavi nel passo 3.a.
    6. Modificare il file mqipt.conf e aggiungere la seguente definizione di instradamento:
      [route]
      ListenerPort=1415
      Destination=server1.company2.com
      DestinationPort=1414
      SSLServer=true
      SSLServerKeyRing=C:\\mqiptHome\\ssl\\mqipt.p12
      SSLServerKeyRingPW=encrypted_password
      SSLClient=true
      SSLClientKeyRing=C:\\mqiptHome\\ssl\\mqipt.p12
      SSLClientKeyRingPW=encrypted_password
      dove encrypted_password è la password del repository delle chiavi codificata creata eseguendo il comando mqiptPW nel passo 3.e.
  4. Aggiungere il certificato MQIPT sia al repository delle chiavi del client che al repository delle chiavi del gestore code
    1. Sul sistema su cui viene eseguito il client, immettere il seguente comando per aggiungere il certificato MQIPT al repository delle chiavi client:
      runmqakm -cert -add -db C:\ProgramData\IBM\MQ\clientkey.kdb -stashed
               -label mqiptcert -file mqipt.crt -format ascii
      dove mqipt.crt è il MQIPT file di certificato creato nel passo 3.c.
    2. Sul sistema su cui viene eseguito il server IBM MQ , immettere il comando seguente per aggiungere il certificato MQIPT al repository delle chiavi del gestore code:
      runmqakm -cert -add -db C:\ProgramData\IBM\MQ\qmgrs\MQIPT!QM1\ssl\key.kdb -stashed
               -label mqiptcert -file mqipt.crt -format ascii
      dove mqipt.crt è il MQIPT file di certificato creato nel passo 3.c.
  5. Sul sistema su cui viene eseguito MQIPT , aprire un prompt dei comandi e immettere i seguenti comandi per avviare MQIPT:
    C:\mqipt\bin\mqipt C:\mqiptHome -n ipt1
    dove C:\mqiptHome indica il percorso del file di configurazione MQIPT , mqipt.conf, e ipt1 è il nome da assegnare all'istanza di MQIPT.
    I seguenti messaggi indicano che MQIPT è stato avviato correttamente:
    5724-H72 (C) Copyright IBM Corp. 2000, 2026. All Rights Reserved
    MQCPI001 IBM MQ Internet Pass-Thru V9.4.0.0 starting
    MQCPI004 Reading configuration information from mqipt.conf
    MQCPI152 MQIPT name is ipt1
    MQCPI021 Password checking has been enabled on the command port
    MQCPI011 The path C:\mqiptHome\logs will be used to store the log files
    MQCPI006 Route 1415 is starting and will forward messages to :
    MQCPI034 ....server1.company2.com(1414)
    MQCPI035 ....using MQ protocol
    MQCPI036 ....SSL Client side enabled with properties :
    MQCPI139 ......secure socket protocols <NULL>
    MQCPI031 ......cipher suites <NULL>
    MQCPI032 ......key ring file C:\\mqiptHome\\ssl\\mqipt.p12
    MQCPI047 ......CA key ring file <NULL>
    MQCPI071 ......site certificate uses UID=*,CN=*,T=*,OU=*,DC=*,O=*,STREET=*,L=*,ST=*,PC=*,C=*,DNQ=*
    MQCPI038 ......peer certificate uses UID=*,CN=*,T=*,OU=*,DC=*,O=*,STREET=*,L=*,ST=*,PC=*,C=*,DNQ=*
    MQCPI037 ....SSL Server side enabled with properties :
    MQCPI139 ......secure socket protocols <NULL>
    MQCPI031 ......cipher suites <NULL>
    MQCPI032 ......key ring file C:\\mqiptHome\\ssl\\mqipt.p12
    MQCPI047 ......CA key ring file <NULL>
    MQCPI071 ......site certificate uses UID=*,CN=*,T=*,OU=*,DC=*,O=*,STREET=*,L=*,ST=*,PC=*,C=*,DNQ=*
    MQCPI038 ......peer certificate uses UID=*,CN=*,T=*,OU=*,DC=*,O=*,STREET=*,L=*,ST=*,PC=*,C=*,DNQ=*
    MQCPI033 ......client authentication set to false
    MQCPI078 Route 1415 ready for connection requests
  6. In un prompt dei comandi sul sistema client IBM MQ , immettere il seguente comando per eseguire il programma di esempio TLS:
    AMQSSSLC -m MQIPT.QM1 -c MQIPT.CONN.CHANNEL -x 10.9.1.2(1415)
             -k "C:\ProgramData\IBM\MQ\clientkey" -l clientcert -s ANY_TLS12_OR_HIGHER
    Il seguente messaggio indica che l'applicazione si è connessa correttamente al gestore code:
    Connection established to queue manager MQIPT.QM1