![[16.0.0.4 und höher]](../ng_v16004plus.gif)
SAF-Zertifikate und Schlüsselringe für TLS unter dem Betriebssystem z/OS konfigurieren
Migrieren Sie einen vorhandenen Verbund für die Verwendung von SAF (System Authorization Facility) für sicherheitsrelevante Funktionen, wie z. B. Authentifizierung-, Autorisierungs- und Zertifikatsanforderungen.
Vorbereitende Schritte
DN=<Hostname>, O=IBM, OU=Collective
Konfigurieren Sie das Attribut rdn mit der Zeichenfolge "OU=Collective" aus dem definierten Namen in der Datei server.xml:
<collectiveCertificate rdn="OU=Collective"></collectiveCertificate>
Informationen zu diesem Vorgang
Die Komponente "Organisationseinheit" OU('Collective') für den Distinguished Name des Antragstellers definiert die Zeichenfolge und markiert das Zeritifikat für Erkennungszwecke bei der folgenden Prozedur.
In den nachfolgenden RACF-Beispielbefehlen, ist CONTROL die RACF-Benutzer-ID des Controllers und MEMBER die RACF-Benutzer-ID des Members.
Vorgehensweise
- Erstellen Sie SAF-Zertifikate und einen Schlüsselring für den Controller.
- Erstellen Sie ein von der Zertifizierungsstelle signiertes Verbundconrollerzertifikat (CERTAUTH).
RACDCERT CERTAUTH GENCERT SUBJECTSDN(CN('CONTROLLER ROOT') O('IBM') C('US'))SIZE(2048)WITHLABEL('CONTROLLER ROOT') TRUST NOTAFTER(DATE(2035/12/31))
- Erstellen Sie ein Serverzertifikat für den Verbundcontroller, das von der Zertifizierungsstelle des Verbundcontrollers signiert ist. Wichtig: Ersetzen Sie den Text controller.host.name durch den Hostnamen des Controllers, um eine Abweichung des Hostnamens mit dem der Browser-URL zu verhindern.
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))
- Erstellen Sie einen Schlüsselring für den Verbundcontroller.
RACDCERT ID(CONTROL) ADDRING(CONTROL.KEYRING)
- Verbinden Sie die Zertifizierungsstelle des Verbundcontrollers mit dem Schlüsselring des Controllers.
RACDCERT CONNECT(CERTAUTH LABEL('CONTROLLER ROOT') RING(CONTROL.KEYRING))ID(CONTROL)
- Verbinden Sie das Serverzertifikat des Controllers mit dem Schlüsselring des Controllers.
RACDCERT CONNECT(ID(CONTROL) LABEL('CONTROLLER') RING(CONTROL.KEYRING)) ID(CONTROL)
- Erstellen Sie ein von der Zertifizierungsstelle signiertes Verbundconrollerzertifikat (CERTAUTH).
- Erstellen Sie SAF-Zertifikate und einen Schlüsselring für das Member.
- Erstellen Sie ein von der Zertifizierungsstelle signiertes Verbundmemberzertifikat (CERTAUTH).
RACDCERT CERTAUTH GENCERT SUBJECTSDN(CN('MEMBER ROOT') O('IBM') C('US'))SIZE(2048)WITHLABEL('MEMBER ROOT') TRUST NOTAFTER(DATE(2035/12/31))
- Verbinden Sie die Zertifizierungsstelle des Verbundmembers mit dem Schlüsselring des Controllers.
RACDCERT CONNECT(CERTAUTH LABEL('MEMBER ROOT') RING(CONTROL.KEYRING))ID(CONTROL)
- Erstellen Sie ein Serverzertifikat für das Verbundmember, das von der Zertifizierungsstelle des Verbundmembers signiert ist. Wichtig: Ersetzen Sie den Text member.host.name durch den Hostnamen des Members, um eine Abweichung des Hostnamens mit dem der Browser-URL zu verhindern.
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))
- Erstellen Sie einen Schlüsselring MEMBER.KEY für das Verbundmember.
RACDCERT ID(MEMBER) ADDRING(MEMBER.KEY)
- Verbinden Sie die Zertifizierungsstelle des Verbundmembers mit dem Schlüsselring MEMBER.KEY.
RACDCERT CONNECT(CERTAUTH LABEL('MEMBER ROOT') RING(MEMBER.KEY)) ID(MEMBER)
- Verbinden Sie das Member-Server-Zertifikat mit dem Schlüsselring MEMBER.KEY.
RACDCERT CONNECT(ID(MEMBER) LABEL('MEMBER') RING(MEMBER.KEY)) ID(MEMBER)
- Listen Sie den Inhalt des Memberschlüsselrings auf.
Im Schlüsselring sollten zwei Zertifikate enthalten sein.
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
- Erstellen Sie einen zweiten Schlüsselring MEMBER.TRUST für das Member.
RACDCERT ID(MEMBER) ADDRING(MEMBER.TRUST)
- Verbinden Sie die Zertifizierungsstelle des Verbundcontrollers mit dem Schlüsselring MEMBER.TRUST.
RACDCERT CONNECT(CERTAUTH LABEL('CONTROLLER ROOT') RING(MEMBER.TRUST))ID(MEMBER)
- Listen Sie den Inhalt des Schlüsselrings MEMBER.TRUST auf. Im Schlüsselring sollte ein Zertifikat enthalten sein.
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
- Erstellen Sie ein von der Zertifizierungsstelle signiertes Verbundmemberzertifikat (CERTAUTH).
- Listen Sie den Inhalt des Controllerschlüsselrings auf. Im Schlüsselring sollten drei Zertifikate enthalten sein.
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
- Berechten Sie den Controller und das Member für die Verwendung der eigenen Schlüsselringe und Zertifikate.
Sie können FACILITY-Klassenprofile oder RDATALIB-Profile verwenden.
Das folgende Beispiel verwendet die FACILITY-Klassenberechtigung für die CONTROL- und MEMBER-Benutzer:
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
Das folgende Beispiel verwendet die RDATALIB-Klassenberechtigung für die CONTROL- und MEMBER-Benutzer:
PERMIT CONTROL.**.LST CLASS(RDATALIB) ID(CONTROL) ACCESS(READ) PERMIT MEMBER.**.LST CLASS(RDATALIB) ID(MEMBER) ACCESS(READ) SETR RACLIST(RDATALIB) REFRESH
- Fügen Sie die z/OS-Sicherheitsfunktion den serverl.xml-Dateien des Controllers und des Members hinzu.
- Stoppen Sie den Controller und das Member. Speichern Sie eine Kopie der server.xml-Datei des Controllers und der des Members bei Ihren Sicherungsdateien.
- Fahren Sie mit der Bearbeitung der server.xml-Dateien fort. Fügen Sie den server.xml-Dateien des Controllers und des Members das Element featureManager hinzu:
<feature>ssl-1.0</feature> <feature>zosSecurity-1.0</feature>
- Erstellen Sie eine Serverklassenprofil, damit der Controller und das Member auf SAF-Services zugreifen können. Weitere Informationen finden Sie in der Produktdokumentation unter Enabling z/OS authorized services on Liberty for z/OS.
Ersetzen Sie anschließend in den server.xml-Dateien des Controllers und des Members die folgende Zeile
durch die folgenden fünf Zeilen:<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>
Das EJBROLE-Profil, das den Zugriff auf das Admin Center steuert, ist BBGZDFLT.Administrator.
- Geben Sie in der Datei server.xml für den Controller und das Member die Zeichenfolge collectiveCertificate an, indem Sie die folgende Zeile hinzufügen:
<collectiveCertificate rdn="OU=Collective"></collectiveCertificate>
- Ersetzen Sie in der Datei server.xml des Controllers die Schlüsseldateinamen durch die SAF-Schlüsselringnamen.
- Lokalisieren Sie das Keystore-Element mit der ID defaultKeyStore. Ersetzen Sie die Zeile location="${server.config.dir}/resources/security/key.jks"/> durch die folgenden Zeilen:
location="safkeyring:///CONTROL.KEYRING" type="JCERACFKS" fileBased="false" readOnly="true" />
- Lokalisieren Sie das Keystore-Element mit der ID defaultTrustStore. Ersetzen Sie die Zeile location="${server.config.dir}/resources/security/trust.jks"/> durch die folgenden Zeilen:
location="safkeyring:///CONTROL.KEYRING" type="JCERACFKS" fileBased="false" readOnly="true" />
- Lokalisieren Sie das Keystore-Element mit der ID serverIdentity. Ersetzen Sie die Zeile location="${server.config.dir}/resources/collective/serverIdentity.jks"/> durch die folgenden Zeilen:
location="safkeyring:///CONTROL.KEYRING" type="JCERACFKS" fileBased="false" readOnly="true" />
- Lokalisieren Sie das Keystore-Element mit der ID collectiveTrust. Ersetzen Sie die Zeile location="${server.config.dir}/resources/collective/collectiveTrust.jks"/> durch die folgenden Zeilen:
location="safkeyring:///CONTROL.KEYRING" type="JCERACFKS" fileBased="false" readOnly="true" />
Ändern Sie nicht das Keystore-Element collectiveRootKeys.
- Lokalisieren Sie das Keystore-Element mit der ID defaultKeyStore. Ersetzen Sie die Zeile location="${server.config.dir}/resources/security/key.jks"/> durch die folgenden Zeilen:
- Ersetzen Sie in der server.xml-Datei des Members die Schlüsseldateinamen durch die SAF-Schlüsselringnamen.
- Lokalisieren Sie das Keystore-Element mit der ID defaultKeyStore. Ersetzen Sie die Zeile location="${server.config.dir}/resources/security/key.jks"/> durch die folgenden Zeilen:
location="safkeyring:///MEMBER.KEY" type="JCERACFKS" fileBased="false" readOnly="true" />
- Lokalisieren Sie das Keystore-Element mit der ID defaultTrustStore. Ersetzen Sie die Zeile location="${server.config.dir}/resources/security/trust.jks"/> durch die folgenden Zeilen:
location="safkeyring:///MEMBER.TRUST" type="JCERACFKS" fileBased="false" readOnly="true" />
- Lokalisieren Sie das Keystore-Element mit der ID serverIdentity. Ersetzen Sie die Zeile location="${server.config.dir}/resources/collective/serverIdentity.jks"/> durch die folgenden Zeilen:
location="safkeyring:///MEMBER.KEY" type="JCERACFKS" fileBased="false" readOnly="true" />
- Lokalisieren Sie das Keystore-Element mit der ID collectiveTrust. Ersetzen Sie die Zeile location="${server.config.dir}/resources/collective/collectiveTrust.jks"/> durch die folgenden Zeilen:
location="safkeyring:///MEMBER.TRUST" type="JCERACFKS" fileBased="false" readOnly="true" />
- Lokalisieren Sie das Keystore-Element mit der ID defaultKeyStore. Ersetzen Sie die Zeile location="${server.config.dir}/resources/security/key.jks"/> durch die folgenden Zeilen:
- Starten Sie den Controller und das Member.
Untergeordnete Themen
- SSH-Probleme in einem Verbund vermeiden
Erfahren Sie hier, wie Sie SSH-Probleme in einem Verbund vermeiden. Sicherheitsprobleme beziehen sich in der Regel auf einen Benutzer, der aufgrund einer zu strengen Sicherheit nicht auf eine Ressource zugreifen kann. Die SSH-Konfigurationsoption "StrictModes" schützt öffentliche und private Schlüsseldateien vor dem umgekehrten Problem, das auftritt, wenn die Sicherheit nicht streng genug ist. SSH stellt sichere Kommunikation zwischen Systemen ohne Kennwortauthentifizierung bereit. SSH funktioniert jedoch nicht, wenn die Berechtigungen für bestimmte Verzeichnisse und Dateien nicht streng genug sind.

Dateiname: tagt_wlp_collective_zos_tls.html