Schlüsselspeicher und Truststores konfigurieren

Es sind zwei Schlüsselspeicher im Mustercode enthalten: server.keystore und client.keystore. Diese Schlüsselspeicher werden mit dem Projekt 'AddressBook' importiert; Sie können sie dort belassen, oder in einen geeigneteren Standort exportieren. Sie müssen den Broker für die Verwendung dieser Schlüsselspeicher konfigurieren. Der Provider und der Nutzer werden in unterschiedliche Ausführungsgruppen implementiert und Sie können für jede Ausführungsgruppe einen anderen Schlüsselspeicher und Truststore festlegen. Das Anzeigen des Inhalts dieser Schlüsselspeicher erleichtert Ihnen, die beiden Bindungen zu verstehen, die für die Konfiguration von WS-Sicherheit erstellt werden müssen. Geben Sie zur Anzeige des Inhalts die folgenden Befehle in dem Verzeichnis ein, das die Schlüsselspeicher enthält:

keytool -list -keystore server.keystore -storepass server -v
keytool -list -keystore client.keystore -storepass client -v

Schlüsselspeicher können zwei Arten von Einträgen enthalten: keyEntrys und trustedCertificateEntries. Wenn ein Schlüsselspeicher für die Aufnahme vertrauenswürdiger Zertifikate verwendet wird, wird er normalerweise als Truststore bezeichnet. Ihr Broker kann nach Ausführungsgruppe auf einen Schlüsselspeicher bzw. einen Truststore verweisen. Wenn der Broker verschlüsselt oder entschlüsselt, verwendet er Einträge in seinem Schlüsselspeicher; wenn er eine Signatur überprüft oder eine X.509-Authentifizierung durchführt, verwendet er Einträge in seinem Truststore. Bei diesem Mustercode wird der gleiche Schlüsselspeicher für den Schlüsselspeicher und für den Truststore verwendet.

  1. Um herauszufinden, welchen Truststore oder Schlüsselspeicher der Broker verwenden kann, geben Sie die folgenden Befehle aus:

    mqsireportproperties MB8BROKER -o ComIbmJVMManager -a -e AddressSampleProvider
    mqsireportproperties MB8BROKER -o ComIbmJVMManager -a -e AddressSampleConsumer

    Die Eigenschaften sind leer, wenn Sie keinen der Werte bezüglich Schlüsselspeicher und Truststores festgelegt haben. Um einen Schlüsselspeicher und Truststore nach Ausführungsgruppe zu konfigurieren, müssen die folgenden sechs Werte festgelegt werden: keystoreType, keyStoreFile, keystorePass, truststoreType, truststoreFile und truststorePass.

  2. Um den Schlüsselspeicher und Truststore des Providers zu konfigurieren, verwenden Sie die folgenden Befehle, um den Standort in den vollständig qualifizierten Standort (nicht einfach nur server.keystore und client.keystore) des Schlüsselspeichers zu ändern. Es könnte sich als nützlich erweisen, die Schlüsselspeicher vom Arbeitsbereich in einen Standort zu exportieren, wie z. B. C:\keystores:

    mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n keystoreFile -v [Pfad des Server-Schlüsselspeichers]
    
    mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n keystoreType -v JKS
    
    mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n keystorePass -v addressBookProvider::password
    
    mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n truststoreFile -v [Pfad des Server-Schlüsselspeichers]
    
    mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n truststoreType -v JKS
    
    mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n truststorePass -v addressBookProvider::password
    

    Verwenden Sie die folgenden Befehle, um den Nutzer-Schlüsselspeicher und -Truststore zu konfigurieren:

    mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n keystoreFile -v [Pfad des Client-Schlüsselspeichers]
    
    mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n keystoreType -v JKS
    
    mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n keystorePass -v addressBookConsumer::password
    
    mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n truststoreFile -v [Pfad des Client-Schlüsselspeichers]
    
    mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n truststoreType -v JKS
    
    mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n truststorePass -v addressBookConsumer::password
    
  3. Schlüsselspeicher haben normalerweise Kennwörter; das Kennwort für server.keystore lautet "server" und das für client.keystore lautet "client". Die vorhergehenden Befehle konfigurieren Verweise zur Speicherposition der Kennwörter. Da derselbe Schlüsselspeicher für den Schlüsselspeicher und den Truststore verwendet wird, sind nur zwei Verweise erforderlich: einer für den Schlüsselspeicher des Nutzers und einer für den Schlüsselspeicher des Providers. Verwenden Sie folgende Befehle zum Konfigurieren des Brokers:

    mqsistop MB8BROKER

    Legen Sie die Kennwörter fest:

    mqsisetdbparms MB8BROKER -n addressBookProvider::password -u temp -p server
    
    mqsisetdbparms MB8BROKER -n addressBookConsumer::password -u temp -p client

    Die Option -u (user) wird nicht verwendet. Starten Sie den Broker neu:

    mqsistart MB8BROKER
  4. Der Broker hat nun Zugriff auf die Schlüsselspeicher. Um zu überprüfen, ob die oben genannten Befehle korrekt ausgeführt wurden, können Sie die Eigenschaften der zwei Ausführungsgruppen erneut melden; die Ausgabe sieht ungefähr wie folgt aus:

    Für den Provider:

    ComIbmJVMManager
      uuid='ComIbmJVMManager'
      userTraceLevel='none'
      traceLevel='none'
      userTraceFilter='none'
      traceFilter='none'
      jvmVerboseOption='none'
      jvmDisableClassGC='false'
      jvmNativeStackSize='-1'
      jvmMinHeapSize='33554432'
      jvmMaxHeapSize='-1'
      jvmDebugPort='0'
      keystoreType='JKS'
      keystoreFile='C:\keystores\server.keystore'
      keystorePass='addressBookProvider::password'
      truststoreType='JKS'
      truststoreFile='C:\keystores\server.keystore'
      truststorePass='addressBookProvider::password'
    
    BIP8071I: Befehl wurde erfolgreich ausgeführt.
    

    Für den Nutzer:

    ComIbmJVMManager
      uuid='ComIbmJVMManager'
      userTraceLevel='none'
      traceLevel='none'
      userTraceFilter='none'
      traceFilter='none'
      jvmVerboseOption='none'
      jvmDisableClassGC='false'
      jvmNativeStackSize='-1'
      jvmMinHeapSize='33554432'
      jvmMaxHeapSize='-1'
      jvmDebugPort='0'
      keystoreType='JKS'
      keystoreFile='C:\keystores\client.keystore'
      keystorePass='addressBookConsumer::password'
      truststoreType='JKS'
      truststoreFile='C:\keystores\client.keystore'
      truststorePass='addressBookConsumer::password'
    
    BIP8071I: Befehl wurde erfolgreich ausgeführt.
    

Zurück zu 'Mustercode für das Hinzufügen von WS-Sicherheit erweitern'

Zurück zur Erweiterung des Mustercodes 'Address Book'

Zurück zum Beginn des Mustercodes