For z/OS platforms[16.0.0.4 and later]

Configuration des certificats SAF et des fichiers de clés pour TLS sur z/OS

Faites migrer une collectivité existante afin de lui faire utiliser SAF (System Authorization Facility) pour les fonctions liées à la sécurité, telles que les demandes d'authentification, d'autorisation ou de certificats.

Avant de commencer

Marquez chaque certificat de collectivité utilisé pour la sécurité administrative avec une chaîne définie pour le contrôleur et le membre. Par exemple, supposons que le nom distinctif (DN) de votre certificat se présente comme suit :
DN=<hostname>, O=IBM, OU=Collective
Dans le fichier server.xml, configurez l'attribut rdn avec la chaîne "OU=Collective" du nom distinctif :
<collectiveCertificate rdn="OU=Collective"></collectiveCertificate>

Pourquoi et quand exécuter cette tâche

Le contrôleur de collectivité et le membre se distinguent par des autorités de certification (CA) signataires différentes. Avec SAF, le contrôleur fait confiance aux membres et les membres font confiance au contrôleur.

L'unité organisationnelle (OU), OU('Collective'), composant du nom distinctif du sujet, définit la chaîne et marque le certificat pour qu'il soit reconnu dans la procédure suivante.

Dans les exemples de commandes RACF qui suivent, CONTROL est l'ID utilisateur RACF du contrôleur et MEMBER est l'ID utilisateur RACF du membre.

Procédure

  1. Créez les certificats SAF et un jeu de clés (keyring) pour le contrôleur.
    1. Créez un certificat de CA (CERTAUTH) pour le contrôleur de collectivité.
      RACDCERT CERTAUTH GENCERT SUBJECTSDN(CN('CONTROLLER ROOT') 
      O('IBM') C('US'))SIZE(2048)WITHLABEL('CONTROLLER ROOT') 
      TRUST NOTAFTER(DATE(2035/12/31))
    1. Créez, pour le contrôleur de collectivité, un certificat de serveur qui soit signé par l'autorité de certification (CA) de ce contrôleur.
      Important : Remplacez le texte controller.host.name par le nom d'hôte du contrôleur pour éviter tout désaccord sur le nom d'hôte avec l'URL du navigateur.
      RACDCERT ID(CONTROL) GENCERT SUBJECTSDN(CN('controller.host.name')   
      O('IBM') OU('Collective')) WITHLABEL('CONTROLLER')  
      SIGNWITH(CERTAUTH LABEL('CONTROLLER ROOT')) SIZE(2048)  
      NOTAFTER(DATE(2020/12/30))  
               
    2. Créez un jeu de clés (keyring) pour le contrôleur de collectivité.
      RACDCERT ID(CONTROL) ADDRING(CONTROL.KEYRING)
    3. Connectez l'autorité de certification (CA) du contrôleur de collectivité au jeu de clés du contrôleur.
      RACDCERT CONNECT(CERTAUTH LABEL('CONTROLLER ROOT')  
      RING(CONTROL.KEYRING))ID(CONTROL)
    4. Connectez le certificat de serveur du contrôleur au jeu de clés du contrôleur.
      RACDCERT CONNECT(ID(CONTROL) LABEL('CONTROLLER') 
      RING(CONTROL.KEYRING)) ID(CONTROL)  
  2. Créez les certificats SAF et un jeu de clés (keyring) pour le membre.
    1. Créez un certificat de CA (CERTAUTH) pour le membre de collectivité.
      RACDCERT CERTAUTH GENCERT SUBJECTSDN(CN('MEMBER ROOT')  
      O('IBM') C('US'))SIZE(2048)WITHLABEL('MEMBER ROOT')  
      TRUST NOTAFTER(DATE(2035/12/31))
    2. Connectez l'autorité de certification (CA) du membre de collectivité au jeu de clés du contrôleur.
      RACDCERT CONNECT(CERTAUTH LABEL('MEMBER ROOT')  
      RING(CONTROL.KEYRING))ID(CONTROL)
    3. Créez, pour le membre de collectivité, un certificat de serveur qui soit signé par l'autorité de certification (CA) de ce membre.
      Important : Remplacez le texte member.host.name par le nom d'hôte du membre pour éviter tout désaccord sur le nom d'hôte avec l'URL du navigateur.
      RACDCERT ID(MEMBER) GENCERT SUBJECTSDN(CN('member.host.name')  
        O('IBM') OU('Collective')) WITHLABEL('MEMBER')                      
        SIGNWITH(CERTAUTH LABEL('MEMBER ROOT')) SIZE(2048)                  
        NOTAFTER(DATE(2020/12/30))
    4. Créez un jeu de clés MEMBER.KEY pour le membre de collectivité.
      RACDCERT ID(MEMBER) ADDRING(MEMBER.KEY)
    5. Connectez l'autorité de certification (CA) du membre de collectivité au jeu de clés MEMBER.KEY.
      RACDCERT CONNECT(CERTAUTH LABEL('MEMBER ROOT') 
      RING(MEMBER.KEY)) ID(MEMBER)    
              
    6. Connectez le certificat de serveur du membre au jeu de clés MEMBER.KEY.
      RACDCERT CONNECT(ID(MEMBER) LABEL('MEMBER')   
      RING(MEMBER.KEY)) ID(MEMBER)
    7. Listez le contenu du jeu de clés du membre.

      Vous devez voir deux certificats dans le jeu de clés.

      RACDCERT ID(MEMBER) LISTRING(MEMBER.KEY)
      Digital ring information for user MEMBER:                                                                 
             >MEMBER.KEY<                                              
        Certificate Label Name Cert Owner USAGE    DEFAULT  
        --------------------------------   ------------   --------   -------  
        MEMBER ROOT                        CERTAUTH       CERTAUTH     NO     
                                                                                
        MEMBER                             ID(MEMBER)     PERSONAL     NO       
         
    8. Créez un second jeu de clés MEMBER.TRUST pour le membre.
      RACDCERT ID(MEMBER) ADDRING(MEMBER.TRUST)
    9. Connectez l'autorité de certification (CA) du contrôleur de collectivité au jeu de clés MEMBER.TRUST.
      RACDCERT CONNECT(CERTAUTH LABEL('CONTROLLER ROOT')  
      RING(MEMBER.TRUST))ID(MEMBER)
    10. Listez le contenu du jeu de clés MEMBER.TRUST. Vous devez voir un seul certificat dans le jeu de clés.
      RACDCERT ID(MEMBER) LISTRING(MEMBER.TRUST)
      Digital ring information for user MEMBER:                               
        Ring:                                                                 
             >MEMBER.TRUST<                                              
        Certificate Label Name Cert Owner USAGE    DEFAULT  
        --------------------------------   ------------   --------   -------  
        CONTROLLER ROOT                    CERTAUTH       CERTAUTH     NO     
         
  3. Listez le contenu du jeu de clés du contrôleur. Vous devez voir trois certificats dans le jeu de clés.
    RACDCERT ID(CONTROL)LISTRING(CONTROL.KEYRING) 
    Ring:                                                                 
           >CONTROL.KEYRING<                                              
      Certificate Label Name Cert Owner USAGE    DEFAULT  
      --------------------------------   ------------   --------   -------  
      MEMBER ROOT                        CERTAUTH       CERTAUTH     NO     
                                                                            
      CONTROLLER ROOT                    CERTAUTH       CERTAUTH     NO     
                                                                            
      CONTROLLER                         ID(CONTROL)    PERSONAL     NO     
  4. Donnez au contrôleur et au membre l'autorisation d'utiliser les jeux de clés et les certificats qu'ils possèdent.

    Vous pouvez utiliser les profils de classe FACILITY ou RDATALIB.

    Dans l'exemple suivant, on utilise les autorisations de la classe FACILITY à la fois pour l'utilisateur CONTROL et pour l'utilisateur MEMBER :

    PERMIT IRR.DIGTCERT.LIST CLASS(FACILITY) ID(CONTROL MEMBER) ACCESS(READ)
    PERMIT IRR.DIGTCERT.LISTRING CLASS(FACILITY) ID(CONTROL MEMBER) ACCESS(READ)
    SETR RACLIST(FACILITY) REFRESH

    Dans l'exemple suivant, on utilise les autorisations de la classe RDATALIB à la fois pour l'utilisateur CONTROL et pour l'utilisateur MEMBER :

    PERMIT CONTROL.**.LST CLASS(RDATALIB) ID(CONTROL) ACCESS(READ)
    PERMIT MEMBER.**.LST CLASS(RDATALIB) ID(MEMBER) ACCESS(READ) 
    SETR RACLIST(RDATALIB) REFRESH
  5. Ajoutez la fonction de sécurité z/OS au fichier server.xml du contrôleur et du membre.
    1. Arrêtez le contrôleur et le membre. Faites une copie de sauvegarde de chacun des fichiers server.xml (celui du contrôleur et celui du membre).
    2. Continuez à éditer les fichiers server.xml. Dans les fichiers server.xml respectifs du membre et du contrôleur, ajoutez les fonctions suivantes à l'élément featureManager :
      <feature>ssl-1.0</feature>
      <feature>zosSecurity-1.0</feature> 
            
    3. Créez un profil de classe de serveur de sorte que le contrôleur et le membre puissent accéder aux services SAF. Consultez Activation des services autorisés z/OS sur Liberty for z/OS dans la documentation produit. Ensuite, dans les fichiers server.xml respectifs du membre et du contrôleur, remplacez la ligne suivante :
      <quickStartSecurity userName="admin" userPassword="adminpw" />
      par les cinq lignes suivantes :
      <safAuthorization id="saf" racRouteLog="ASIS" />                    
      <safCredentials profilePrefix="BBGZDFLT" unauthenticatedUser="WSGUEST"/>
      <safRegistry id="saf" realm="WASRealm" />                           
      <safRoleMapper profilePattern="%profilePrefix%.%role%" />           
      <zosLogging enableLogToMVS="true"></zosLogging>

      Le profil EJBROLE contrôlant l'accès au Centre d'administration est BBGZDFLT.Administrator.

    4. Dans les fichiers server.xml respectifs du membre et du contrôleur, spécifiez la chaîne collectiveCertificate en ajoutant la ligne suivante :
      <collectiveCertificate rdn="OU=Collective"></collectiveCertificate>
  6. Dans le fichier server.xml du contrôleur, remplacez les noms des fichiers de clés par ceux des jeux de clés (keyrings) SAF.
    1. Localisez l'élément keystore dont l'ID est defaultKeyStore. Remplacez location="${server.config.dir}/resources/security/key.jks"/> par les lignes suivantes :
      location="safkeyring:///CONTROL.KEYRING"                  
      type="JCERACFKS" fileBased="false" readOnly="true" />
    2. Localisez l'élément keystore dont l'ID est defaultTrustStore. Remplacez location="${server.config.dir}/resources/security/trust.jks"/> par les lignes suivantes :
      location="safkeyring:///CONTROL.KEYRING"                                 
      type="JCERACFKS" fileBased="false" readOnly="true" />  
    3. Localisez l'élément keystore dont l'ID est serverIdentity. Remplacez location="${server.config.dir}/resources/collective/serverIdentity.jks"/> par les lignes suivantes :
      location="safkeyring:///CONTROL.KEYRING"                  
      type="JCERACFKS" fileBased="false" readOnly="true" /> 
          
    4. Localisez l'élément keystore dont l'ID est collectiveTrust. Remplacez location="${server.config.dir}/resources/collective/collectiveTrust.jks"/> par les lignes suivantes :
      location="safkeyring:///CONTROL.KEYRING"                  
      type="JCERACFKS" fileBased="false" readOnly="true" />
          

      Ne changez pas l'élément keystore collectiveRootKeys.

  7. Dans le fichier server.xml du membre, remplacez les noms des fichiers de clés par ceux des jeux de clés (keyrings) SAF.
    1. Localisez l'élément keystore dont l'ID est defaultKeyStore. Remplacez location="${server.config.dir}/resources/security/key.jks"/> par les lignes suivantes :
      location="safkeyring:///MEMBER.KEY"                  
      type="JCERACFKS" fileBased="false" readOnly="true" />
    2. Localisez l'élément keystore dont l'ID est defaultTrustStore. Remplacez location="${server.config.dir}/resources/security/trust.jks"/> par les lignes suivantes :
      location="safkeyring:///MEMBER.TRUST"                                 
      type="JCERACFKS" fileBased="false" readOnly="true" />  
    3. Localisez l'élément keystore dont l'ID est serverIdentity. Remplacez location="${server.config.dir}/resources/collective/serverIdentity.jks"/> par les lignes suivantes :
      location="safkeyring:///MEMBER.KEY"                  
      type="JCERACFKS" fileBased="false" readOnly="true" />
          
    4. Localisez l'élément keystore dont l'ID est collectiveTrust. Remplacez location="${server.config.dir}/resources/collective/collectiveTrust.jks"/> par les lignes suivantes :
      location="safkeyring:///MEMBER.TRUST"                  
      type="JCERACFKS" fileBased="false" readOnly="true" />
          
  8. Démarrez le contrôleur et le membre.

Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : tagt_wlp_collective_zos_tls.html