![[16.0.0.4 and later]](../ng_v16004plus.gif)
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
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
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
- Créez les certificats SAF et un jeu de clés (keyring) pour le contrôleur.
- 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))
- 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))
- Créez un jeu de clés (keyring) pour le contrôleur de collectivité.
RACDCERT ID(CONTROL) ADDRING(CONTROL.KEYRING)
- 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)
- 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)
- Créez un certificat de CA (CERTAUTH) pour le contrôleur de collectivité.
- Créez les certificats SAF et un jeu de clés (keyring) pour le membre.
- 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))
- 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)
- 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))
- Créez un jeu de clés MEMBER.KEY pour le membre de collectivité.
RACDCERT ID(MEMBER) ADDRING(MEMBER.KEY)
- 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)
- 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)
- 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
- Créez un second jeu de clés MEMBER.TRUST pour le membre.
RACDCERT ID(MEMBER) ADDRING(MEMBER.TRUST)
- 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)
- 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
- Créez un certificat de CA (CERTAUTH) pour le membre de collectivité.
- 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
- 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
- Ajoutez la fonction de sécurité z/OS au fichier
server.xml du contrôleur et du membre.
- 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).
- 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>
- 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 :
par les cinq lignes suivantes :<quickStartSecurity userName="admin" userPassword="adminpw" />
<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.
- 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>
- 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.
- 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" />
- 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" />
- 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" />
- 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.
- Localisez l'élément keystore dont l'ID est defaultKeyStore. Remplacez location="${server.config.dir}/resources/security/key.jks"/> par les
lignes suivantes :
- Dans le fichier
server.xml du membre, remplacez les noms des fichiers de clés
par ceux des jeux de clés (keyrings) SAF.
- 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" />
- 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" />
- 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" />
- 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" />
- Localisez l'élément keystore dont l'ID est defaultKeyStore. Remplacez location="${server.config.dir}/resources/security/key.jks"/> par les
lignes suivantes :
- Démarrez le contrôleur et le membre.
Sous-rubriques
- Éviter les problèmes avec SSH dans une collectivité
Découvrez comment éviter les problèmes avec SSH dans une collectivité. Il est généralement question de problèmes de sécurité lorsqu'un utilisateur n'a pas accès à une ressource en raison d'une sécurité trop stricte. L'option de configuration SSH StrictModes protège les fichiers de clés publics et privés de la situation inverse, celle où la sécurité est trop permissive. SSH sécurise les communications entre systèmes sans authentification par mot de passe, mais elle ne fonctionne pas si les autorisations sur certains répertoires et fichiers ne sont pas suffisamment strictes.

Nom du fichier : tagt_wlp_collective_zos_tls.html