[z/OS]

Configurazione di TLS per REST API e IBM MQ Console su z/OS

Su z/OS®, è possibile configurare il server mqweb per utilizzare un keyring RACF® per memorizzare i certificati per le connessioni sicure con TLS e l'autenticazione del certificato client.

Prima di iniziare

Per completare questa procedura, è necessario essere un utente che disponga dell'accesso in scrittura al file mqwebuser.xml e dell'autorità per gestire i keyring SAF.

Informazioni su questa attività

La configurazione predefinita del server mqweb utilizza i keystore Java per il server e i certificati attendibili. Su 'z/OS, è possibile configurare il server mqweb in modo che utilizzi un portachiavi 'RACF, invece del keystore 'Java. Il server può essere configurato anche per consentire agli utenti di autenticarsi utilizzando un certificato client.

Consultare Liberty: Keystores per informazioni sull'utilizzo dei keyring RACF in Liberty.

Seguire questa procedura per configurare il server mqweb per utilizzare un keyring RACF e, facoltativamente, per configurare l'autenticazione del certificato client. Questa procedura descrive i passi necessari per creare e utilizzare i certificati firmati con i propri certificati CA (Certificate Authority). Per la produzione, è possibile utilizzare i certificati ottenuti da un'autorità di certificazione esterna.

Procedura

  1. Creare un certificato CA (Certificate Authority), che verrà utilizzato per firmare il certificato del server. Ad esempio, immettere il seguente comando RACF :
    RACDCERT GENCERT -
      CERTAUTH -
      SUBJECTSDN(CN('mqweb Certification Authority') -
        O('IBM') -
        OU('MQ')) -
      SIZE(2048) -
      WITHLABEL('mqwebCertauth')
  2. Creare un certificato server, firmato con il certificato CA creato nel passo 1, immettendo il seguente comando:
    RACDCERT ID(mqwebUserId) GENCERT -
      SUBJECTSDN(CN('hostname') -
       O('IBM') -
       OU('MQ')) -
       SIZE(2048) -
       SIGNWITH (CERTAUTH LABEL('mqwebCertauth')) -
      WITHLABEL('mqwebServerCert')
    dove mqwebUserId è l'ID dell'utente del task avviato dal server mqweb e hostname è il nome dell'host del server mqweb.
  3. Collegare il certificato CA e il certificato server ad un keyring SAF immettendo i seguenti comandi:
    RACDCERT ID(mqwebUserId) CONNECT(RING(keyring) LABEL('mqwebCertauth') CERTAUTH)
    RACDCERT ID(mqwebUserId) CONNECT(RING(keyring) LABEL('mqwebServerCert'))
    dove mqwebUserId è l'ID dell'attività avviata dal server mqweb e keyring è il nome del portachiavi che si desidera utilizzare.
  4. Esportare il certificato CA in un file CER immettendo il seguente comando:
    RACDCERT CERTAUTH EXPORT(LABEL('mqwebCertauth')) -
            DSN('hlq.CERT.MQWEBCA') -
            FORMAT(CERTDER) -
            PASSWORD('password')
  5. FTP del certificato CA esportato in binario sulla stazione di lavoro e importarlo nel browser come certificato CA (Certificate Authority).
  6. Facoltativo: se si desidera configurare l'autenticazione del certificato client, creare ed esportare un certificato client.
    1. Creare un certificato CA (Certificate Authority), che verrà utilizzato per firmare il certificato client. Ad esempio, immettere il seguente comando RACF :
      RACDCERT GENCERT -
        CERTAUTH -
        SUBJECTSDN(CN('mqweb User CA') -
         O('IBM') -
         OU('MQ')) -
         SIZE(2048) -
        WITHLABEL('mqwebUserCertauth')
    2. Collegare il certificato CA a un keyring SAF immettendo il seguente comando:
      RACDCERT ID(mqwebUserId) CONNECT(RING(keyring) LABEL('mqwebUserCertauth') CERTAUTH)
      dove mqwebUserId è l'ID dell'attività avviata dal server mqweb e keyring è il nome del portachiavi che si desidera utilizzare.
    3. Creare un certificato client, firmato con il certificato CA. Ad esempio, immetti il seguente comando:
      RACDCERT ID(clientUserId) GENCERT -
        SUBJECTSDN(CN('clientUserId') -
           O('IBM') -
           OU('MQ')) -
         SIZE(2048) -
         SIGNWITH (CERTAUTH LABEL('mqwebUserCertauth')) -
        WITHLABEL('userCertLabel')
      dove clientUserId è il nome dell'utente.
      Il metodo utilizzato per associare un certificato ad un'entità principale dipende dal tipo di registro utente configurato:
      • Se si utilizza un registro di base, il campo Nome comune nel certificato viene confrontato con l'utente nel registro.
      • Se si utilizza un registro SAF e il certificato si trova nel database RACF , viene utilizzato il proprietario del certificato, specificato con il parametro ID quando si crea il certificato.
      • Se si sta utilizzando un registro LDAP, il DN completo nel certificato viene confrontato con il registro LDAP.
    4. Esportare il certificato client in un file PKCS #12 immettendo il seguente comando:
      RACDCERT ID(mqwebUserId) EXPORT(LABEL('userCertLabel')) -
               PASSWORD('password') DSN('hlq.USER.CERT')
    5. FTP del certificato esportato in binario sulla stazione di lavoro. Per utilizzare il certificato client con il 'IBM® MQ Console, importatelo nel browser Web utilizzato per accedere al 'IBM MQ Console come certificato personale.
  7. Modificare il file WLP_user_directory/servers/mqweb/mqwebuser.xml, dove WLP_user_directory è la directory specificata quando lo script crtmqweb è stato eseguito per creare la definizione del server mqweb.
    Apportare le seguenti modifiche per configurare il server mqweb per utilizzare un keyring RACF :
    1. Rimuovere o commentare la seguente riga:
      <sslDefault sslRef="mqDefaultSSLConfig"/>
    2. Aggiungere le seguenti istruzioni:
      <keyStore id="defaultKeyStore" filebased="false"
                location="safkeyring://mqwebUserId/keyring"
                password="password" readOnly="true" type="JCERACFKS" />
      <ssl id="thisSSLConfig" keyStoreRef="defaultKeyStore" sslProtocol="TLSv1.2"
                serverKeyAlias="mqwebServerCert" clientAuthenticationSupported="true" />
      <sslDefault sslRef="thisSSLConfig"/>
      dove:
      • mqwebUserId è l'ID dell'utente del task avviato dal server mqweb.
      • keyring è il nome del keyring RACF .
      • mqwebServerCert è l'etichetta del certificato del server mqweb.
      Note: il valore di keyStore password viene ignorato.
  8. Riavviare il server mqweb arrestando e riavviando l'attività avviata del server mqweb.
  9. Facoltativo: Utilizzare il certificato client per autenticare:
    • Per utilizzare il certificato client con IBM MQ Console, inserire l' URL di IBM MQ Console nel browser web in cui è stato installato il certificato client.
    • Per utilizzare il certificato client con l'API REST, fornire il certificato client con ogni richiesta REST.
    Note:
    1. Se si stanno utilizzando solo certificati per l'autenticazione con IBM MQ Console, il browser potrebbe visualizzare un elenco di certificati da cui effettuare la selezione.
    2. Se si desidera utilizzare un certificato differente, potrebbe essere necessario chiudere e riavviare il browser.
    3. Se si utilizzano certificati client che non si trovano nel database RACF , è possibile utilizzare il filtro del nome certificato RACF per associare gli attributi del certificato a un ID utente. Ad esempio:
      RACDCERT ID(DEPT3USR) MAP SDNFILTER(OU=DEPT1.C=US)
      associa i certificati con un DN (Distinguished Name) Soggetto contenente OU=DEPT1 e C=US all'ID utente DEPT3USR.
    4. Se il nome dell'host nel soggetto CN del certificato e il nome alternativo del soggetto (SAN) non corrispondono al nome dell'host dell' URL di IBM MQ Console, il browser potrebbe segnalare che la connessione non è sicura. Anche se si può procedere tranquillamente, si dovrebbe prendere in considerazione la creazione di un nuovo certificato, specificando l'elenco completo degli hostname per i quali sarà utilizzato, e quindi sostituire il certificato esistente sul portachiavi 'RACF con quello nuovo.

Risultati

Hai configurato un'interfaccia TLS per IBM MQ Console e REST API.