Über den Einsatz von Cookies auf dieser Website Unsere Websites benötigen einige Cookies, um ordnungsgemäß zu funktionieren (erforderlich). Darüber hinaus können mit Ihrer Zustimmung weitere Cookies verwendet werden, um die Nutzung der Website zu analysieren, die Benutzerfreundlichkeit zu verbessern und Werbung zu schalten. Weitere Informationen finden Sie in Ihren. Durch den Besuch unserer Website erklären Sie sich mit der Verarbeitung von Informationen einverstanden, wie in der IBMDatenschutzbestimmung beschrieben. Um eine reibungslose Navigation zu ermöglichen, werden Ihre Cookie-Präferenzen über die hier aufgeführten IBM Web-Domains hinweg gemeinsam genutzt.
Fernverwaltung mit 'runmqsc' sichern
In diesem Dokument wird beschrieben, wie TLS für die Fernverwaltung eines MQ on Cloud-Warteschlangenmanagers über die runmqsc
-Befehlszeilenschnittstelle aktiviert wird.
Vorbereitungen
- Wenn Ihr Warteschlangenmanager Version 9.2.1 Revision 1 oder älter ist, müssen Sie zuerst die TLS-Sicherheit im MQ-Kanal konfigurieren. Bei neueren Versionen wird TLS standardmäßig mit der ANY_TLS12_OR_HIGHER-Verschlüsselung aktiviert.
- Details zum Aktivieren von TLS finden Sie unter TLS-Sicherheit für MQ-Kanäle in MQ on Cloud aktivieren.
- Für die Zwecke dieses Abschnitts wird davon ausgegangen, dass der Kanal CLOUD.ADMIN.SVRCONN mit der Cipherspec ANY_TLS12_OR_HIGHER und der SSL-Authentifizierung (SSLCAUTH) als optional konfiguriert wurde.
- In einem weiteren Abschnitt am Ende dieses Themas wird beschrieben, wie die TLS-Konfiguration erweitert wird, um die bidirektionale TLS-Authentifizierung des 'runmqsc'-Clients zu unterstützen.
- In diesem Abschnitt wird ein JSON-Format für CCDT beschrieben, mit dem 'runmqsc' mitgeteilt wird, wie eine Verbindung zum Warteschlangenmanager hergestellt werden soll.
- Um eine CCDT im JSON-Format verwenden zu können, müssen Sie über eine 'runmqsc'-Installation von IBM MQ der Version 9.1.2 oder höher verfügen. 'runmqsc'-Versionen vor dieser unterstützen CCDT im JSON-Format nicht.
- Sie können 'runmqsc' auch mithilfe einer binären CCDT mit einem Warteschlangenmanager verbinden, wenn Sie möchten, aber die hier gegebenen Anweisungen sind spezifisch für JSON-CCDT.
- Zum Konfigurieren der Client-Keystore-Datei benötigen Sie Tools wie
runmqakm
.- Diese Tools sind entweder in einer vollständigen Installation von IBM MQ oder in einer Installation des MQ-Clients für Ihr Betriebssystem verfügbar.
- Vollständige Installationen und Clientinstallationen sind auf der Seite MQ-Downloads verfügbar.
- Es gibt auch einen Client MacOS-Toolkit für Entwickler, der die native Verwendung von runmqsc unter MacOS ermöglicht.
runmqsc für die Verwendung von (unidirektionalen) Standard-TLS-Verbindungen konfigurieren
Eine JSON-CCDT-Datei herunterladen oder erstellen, die den Warteschlangenmanager beschreibt, zu dem eine Verbindung hergestellt werden soll.
Sie können eine JSON-CCDT von der Seite für Warteschlangenmanagerdetails herunterladen, indem Sie auf die Schaltfläche "Verbindungsinformationen" klicken und dann das Format "JSON-CCDT" auswählen. Beachten Sie, dass die heruntergeladene JSON-CCDT nicht die Verschlüsselungsspezifikation enthält, die Sie dem Kanal zugeordnet haben. Daher müssen Sie diese manuell hinzufügen, indem Sie eine TransmissionSecurity-Definition für jeden Kanal hinzufügen, wie im Beispiel unten gezeigt.
Alternativ können Sie die hier bereitgestellte Beispielvorlage einfach kopieren und die Werte für den Host, den Port, den Warteschlangenmanager und die Kanalwerte so aktualisieren, dass sie mit Ihrem Warteschlangenmanager übereinstimmen.
{
"channel": [
{
"name": "CLOUD.ADMIN.SVRCONN",
"clientConnection": {
"connection": [
{
"host": "qm1-1234.qm.us-south.mq.appdomain.cloud",
"port": 31500
}
],
"queueManager": "QM1"
},
"transmissionSecurity": {
"cipherSpecification": "ANY_TLS12_OR_HIGHER"
},
"type": "clientConnection"
}
]
}
Die Verschlüsselungsspezifikation im obigen JSON-CCDT-Beispiel wurde als ANY_TLS12_OR_HIGHER angegeben, was dem runmqsc-Client ermöglicht, eine zulässige Verschlüsselung mit dem Warteschlangenmanager innerhalb der Familie von TLS v1.2-Verschlüsselungen, basierend auf den Verschlüsselungen, die der Kanal zulässt, auszuhandeln. Für maximale Flexibilität kann der Warteschlangenmanagerkanal auch als ANY_TLS12_OR_HIGHER konfiguriert werden, was dem Client und dem Server ermöglicht, zwischen ihnen zu verhandeln.
Erforderliche Umgebungsvariablen für die runmqsc-Umgebung konfigurieren
Wir werden Umgebungsvariablen so konfigurieren, dass sie den 'runmqsc'-Client anweisen, die JSON-CCDT zu verwenden, um die Details der Warteschlangenmanagerverbindung abzurufen. Dies schließt den Namen der Kanal-Verschlüsselungsspezifikation ein, die wir im vorherigen Schritt definiert haben.
-
Öffnen Sie ein Fenster mit Eingabeaufforderung und navigieren Sie zum Verzeichnis MQ
bin
Ihrer Installation. Seine Position hängt von Ihrem Betriebssystem ab, z. B.:Tabelle 1. Speicherort der Installationsdatei für verschiedene Betriebssysteme Betriebssystem Dateispeicherort Linux vollständige MQ-Installation /var/mqm/bin
Windows C:\Program Files\IBM\MQ\bin
Linux/Mac, Verwenden der Clientinstallation ~/mytoolkit/IBM-MQ-Toolkit-Mac-x64-9.1.2.0/bin
-
Legen Sie die Umgebungsvariable
MQCCDTURL
fest, um den runmqsc-Client anzuweisen, die JSON-CCDT einzulesen. Die VariableMQCCDTURL
ist eine URL, die auf die JSON-CCDT-Datei verweist.-
MQCCCDTURL ist der vollständige Dateipfad vom Systemstammverzeichnis zur CCDT-Datei.
# Linux/MacOS export MQCCDTURL=file:///Users/myuser/connection_info_ccdt.json unset MQSERVER # Windows set MQCCDTURL=file:///c:/temp/connection_info_ccdt.json set MQSERVER=
Sie DÜRFEN die MQSERVER-Variable NICHT festgelegt haben, andernfalls hat sie Vorrang vor den Einstellungen aus der JSON-CCDT
-
Es gibt zwei Möglichkeiten, die Position Ihrer CCDT-Datei anzugeben: Wenn MQCCDTURL bei Ihnen nicht funktioniert, versuchen Sie, MQCHLTAB und MQCHLLIB wie unten beschrieben festzulegen.
MQCHLLIB ist der vollständige Pfad vom Systemstammverzeichnis zu dem Verzeichnis, das die CCDT-Datei enthält.
export MQCHLLIB=/path/to/ccdt set MQCHLLIB=c:\path\to\ccdt
MQCHLTAB ist der Dateiname der CCDT-Datei.
export MQCHLTAB=connection_info_ccdt.json set MQCHLTAB=connection_info_ccdt.json
-
-
Legen Sie die Umgebungsvariable MQSSLKEYR fest, damit der runmqsc-Client dem vom Warteschlangenmanager vorgelegten TLS-Zertifikat vertrauen kann.
Die Variable MQSSLKEYR muss auf den vollständigen Pfad vom Systemstammverzeichnis zu einer Keystore-Datei, die das vom Warteschlangenmanager präsentierte TLS-Zertifikat enthält, festgelegt werden.
Wenn Sie noch keine Keystore-Datei haben, können Sie eine erstellen, indem Sie den Anweisungen im Thema Keystore erstellen folgen. Dies schließt das Herunterladen des öffentlichen Zertifikats für den Warteschlangenmanager über die Benutzerschnittstelle der Servicekonsole ein.
Beachten Sie, dass das Suffix
.kdb
der Datei NICHT im WertMQSSLKEYR
enthalten sein darf. Geb en Sie also für einen Keystore mit dem Namenkey.kdb
nurkey
an.# Linux/MacOS export MQSSLKEYR=/Users/myuser/key # Windows set MQSSLKEYR=c:\temp\key
Führen Sie den Befehl runmqsc
aus, um eine Verbindung zum Warteschlangenmanager herzustellen.
Nach der Einrichtung der erforderlichen Umgebung können Sie den Befehl runmqsc
ausführen, um eine Verbindung zum Warteschlangenmanager herzustellen.
Normalerweise benötigen Sie die folgenden Eingaben für den Befehl runmqsc:
- MQ-Administratorbenutzername und -API-Schlüssel, den Sie über die Servicekonsole erhalten, wie unter Erforderliche Verbindungsdetails zusammenstellen beschrieben. Beachten Sie, dass dies ein Administratorbenutzername und -API-Schlüssel sein müssen, nicht ein Anwendungsbenutzername und -API-Schlüssel.
- Name des Warteschlangenmanagers, der mit der Angabe in der JSON-CCDT-Datei übereinstimmen muss, zum Beispiel "QM1".
<Path to MQ/bin directory>/runmqsc -c -u mqusername QM1
Alle Operationen in diesem 'runmqsc'-Befehl werden nun auf einem gesicherten Kanal ausgeführt.
'runmqsc' für die Verwendung bidirektionaler ("Zwei-Wege-") TLS-Verbindungen konfigurieren
In den folgenden Schritten wird beschrieben, wie Sie die obigen Anweisungen erweitern, um die bidirektionale TLS-Konnektivität zwischen dem 'runmqsc'-Client und dem Warteschlangenmanager zu konfigurieren.
In Szenarios mit bidirektionalem TLS stellt der Client (z. B. 'runmqsc') ein Clientzertifikat für den Warteschlangenmanager dar und der Warteschlangenmanager muss so konfiguriert sein, dass er dem eingehenden Clientzertifikat vertraut.
-
Generieren Sie ein TLS-Clientzertifikat, das den runmqsc-Client ermittelt:
In einigen Organisationen werden TLS-Clientzertifikate für Sie von einer zentralen Zertifizierungsstelle (CA) generiert. Für die Zwecke dieses Beispiels werden wir unser eigenes selbst signiertes Clientzertifikat generieren.
# Generate a new private key and public certificate for the client # (fill in the segments of the certificate as you wish when prompted) openssl req -newkey rsa:2048 -nodes -keyout clientKey.pem -x509 -days 365 -out clientCert.pem # Combine the private key and public certificate into a single file cat clientKey.pem > clientCombined.pem cat clientCert.pem >> clientCombined.pem
-
Fügen Sie das neu generierte Clientzertifikat zur lokalen Schlüsselspeicherdatei hinzu:
Importieren Sie die Kombination aus Clientschlüssel und Zertifikat in die Keystore-Datei und notieren Sie sich die Bezeichnung, die Sie verwenden.
runmqakm -cert -add -db key.kdb -file clientCombined.pem -label runmqsc -stashed -type pkcs12 -format ascii
-
Konfigurieren Sie den Warteschlangenmanager so, dass er dem Clientzertifikat vertraut:
- Importieren Sie den öffentlichen Teil des Clientzertifikats, indem Sie zu der Benutzerschnittstelle von MQ on Cloud-Servicekonsole auf der Seite für Warteschlangenmanager navigieren und die Registerkarte "Truststore" auswählen.
- Klicken Sie auf die Schaltfläche 'Zertifikat importieren' und wählen Sie die Datei aus, die den öffentlichen Teil des Clientzertifikats enthält, z. B.
clientCert.pem
. - Klicken Sie auf 'Weiter', wählen Sie eine Bezeichnung für das Zertifikat aus (es muss nicht die gleiche Bezeichnung wie in der Client-Keystore-Datei sein) und klicken Sie anschließend auf 'Speichern'.
- Nachdem Sie das Zertifikat hochgeladen haben, werden Sie aufgefordert, die SSL-Sicherheitskonfiguration des Warteschlangenmanagers zu aktualisieren. Dies können Sie über die MQ-Konsole, MQ Explorer oder 'runmqsc' tun, wie hier beschrieben.
-
Konfigurieren Sie den Warteschlangenmanagerkanal so, dass eine gegenseitige TLS erforderlich ist:
- Der TLS-Modus für einen Kanal wird durch das Attribut
SSL Authentication
des Kanals gesteuert, das aufRequired
gesetzt sein muss, um gegenseitige TLS zu aktivieren. Sie können das Attribut über die MQ-Konsole oder den MQ Explorer über die Benutzeroberfläche festlegen. Wenn Sie runmqsc verwenden, müssen Sie das AttributSSLCAUTH
aufREQUIRED
setzen.
- Der TLS-Modus für einen Kanal wird durch das Attribut
-
Konfigurieren Sie runmqsc so, dass das Clientzertifikat angezeigt wird, wenn es eine Verbindung zum Warteschlangenmanager herstellt:
- Setzen Sie die Umgebungsvariable
MQCERTLABL
auf die Bezeichnung des Clientzertifikats in der lokalen Keystore-Datei. Anschließend können Sie den Befehl 'runmqsc' ausführen, um eine Verbindung zum Warteschlangenmanager herzustellen, der dieses Mal unter Verwendung der gegenseitigen TLS-Authentifizierung konfiguriert wird.
export MQCERTLABL=runmqsc runmqsc -c -u mqusername QM1
- Setzen Sie die Umgebungsvariable
Nächste Schritte
Wenn Sie Anwendungen mit einem Warteschlangenmanager verbinden möchten, bei dem TLS für die Kanäle aktiviert ist, können Sie den Anweisungen im folgenden Abschnitt folgen.