SSL für den SAP-Host-Agenten auf IBM i konfigurieren 
In der folgenden Vorgehensweise gehen wir von der Annahme aus, dass Sie die Standardnamen für die Server-PSE verwenden. Wenn Sie den Standard-.pse-Namen überschreiben wollen, können Sie den folgenden Wert in der Profildatei des SAP-Host-Agenten (host_profile) verwenden:
ssl/server_pse= <Path to Server PSE>
Sie finden die Datei host_profile unter $DIR_EXECUTABLE, wobei $DIR_EXECUTABLE der Pfad zum Verzeichnis ist, in dem die ausführbaren Programme saphostcontrol und saphostexec des SAP-Host-Agenten abgelegt sind: /usr/sap/hostctrl/exe
Sie müssen als ein Benutzerprofil mit den speziellen Berechtigungen *SECADM und *ALLOBJ, beispielsweise als Benutzerprofil QSECOFR, angemeldet sein.
Bereiten Sie die Personal Security Environment (PSE) für den Server vor:
Die Server-PSE enthält die Namen und die öffentlichen Schlüssel der vertrauenswürdigen Zertifikate sowie das Serverzertifikat, das an den Client gesendet wird, wenn die SSL-Verbindung hergestellt ist. Vertrauenswürdige Zertifikate können Zertifikate, die von der Certification Authority (CA) ausgestellt werden, oder individuell vertrauenswürdige Zertifikate sein.
Gehen Sie folgendermaßen vor:
Sie müssen vorübergehend die Anmeldung für den Benutzer SAPADM aktivieren. Um das Benutzerprofil zu ändern, geben Sie folgenden Befehl ein:
CHGUSRPRF USRPRF(SAPADM) INLMNU(MAIN) LMTCPB(*NO)
Legen Sie ein Verzeichnis /usr/sap/hostctrl/exe/sec mithilfe des folgenden Befehls ein:
CRTDIR DIR('/usr/sap/hostctrl/exe/sec') DTAAUT(*EXCLUDE) OBJAUT(*NONE)
Hinweis
Sie können auch ein anderes Verzeichnis verwenden, aber in diesem Falle müssen Sie angeben, wo sich die PSE-Datei befindet und dafür den Parameter ssl/server_pse wie oben beschrieben verwenden. In der folgenden Vorgehensweise verwenden wir der Einfachheit halber immer das Verzeichnis sec.
Ändern Sie den Eigentümer und die primäre Gruppe des PSE-Verzeichnisses und definieren Sie die entsprechenden Berechtigungen mithilfe des folgenden Befehls:
QSYS/CHGOWN OBJ('/usr/sap/hostctrl/exe/sec') NEWOWN(SAPADM)
QSYS/CHGPGP OBJ('/usr/sap/hostctrl/exe/sec') NEWPGP(R3GROUP) DTAAUT(*RWX)
Melden Sie sich nun als Benutzer SAPADM an und führen Sie den Befehl CALL PGM(QP2TERM) aus, bevor Sie die Befehle der folgenden Arbeitsschritte eingeben.
Richten Sie den Suchpfad für die Shared Library (LIBPATH) und die SECUDIR-Umgebungsvariablen ein und wechseln Sie außerdem zum Verzeichnis exe des SAP-Host-Agenten.
Die erforderlichen Befehle sind:
export LIBPATH=/usr/sap/hostctrl/exe
export SECUDIR=/usr/sap/hostctrl/exe/sec
cd /usr/sap/hostctrl/exe
Empfehlung
Setzen Sie SECUDIR als absoluten Pfad, um Konflikte mit dem Werkzeug sapgenpse zu vermeiden.
Legen Sie die Server-PSE und dort das Serverzertifikat sowie den Certificate Signing Request (CSR) mithilfe des folgenden Befehls an:
./sapgenpse gen_pse -p SAPSSLS.pse -x <PASSWORD> -r <PKCS#10 requestfile> <DISTINGUISHED NAME>
Dieser Befehl legt die PSE-Datei /usr/sap/hostctrl/exe/sec/SAPSSLS.pse (Name ist ein Festwert) an, die für die Authentifizierung des Hosts verwendet werden kann, der von <DISTINGUISHED NAME> für eingehende SSL-Verbindungen beschrieben wird. Der Zugriff auf die PSE-Datei wird mit dem Kennwort <PASSWORD> geschützt.
Der CSR wird in die Stream-Datei <PKCS#10 requestfile> geschrieben. Ignorieren Sie die Warnung sapgenpse-WARNUNG: Umgebungsvariable "USER" ist nicht definiert!
Beispiel
./sapgenpse gen_pse -p SAPSSLS.pse -x pass -r /tmp/myhost-csr.p10 "CN=myhost.wdf.sap.corp, O=SAP AG, C=DE"
Dieser Befehl legt die PSE-Datei /usr/sap/hostctrl/exe/sec/SAPSSLS.pse an, die für die Authentifizierung von myhost.wdf.sap.corp für eingehende SSL-Verbindungen verwendet werden kann. Der Zugriff auf die PSE-Datei wird mit dem Kennwort pass geschützt. Der CSR wird in die Stromdatendatei /tmp/myhost-csr.p10 geschrieben.
Gewähren Sie dem SAP-Host-Agenten Zugriff auf die Server-PSE mithilfe des folgenden Befehls.
./sapgenpse seclogin -p SAPSSLS.pse -x <PASSWORD> -O sapadm
Beispiel
./sapgenpse seclogin -p SAPSSLS.pse -x pass -O sapadm
Rufen Sie das Zertifikat auf die folgende Weise ab:
Übertragen Sie die Datenstromdatei, die den CSR (Certificate Signing Request) enthält, zu einem Rechner und senden Sie sie an die von Ihnen verwendete Certification Authority (CA).
Die CA antwortet auf die PKCS#10 requestfile mit einer “CA-response-file”, die das signierte Zertifikat enthält - zwischen den Zeilen ---- BEGIN CERTIFICATE ---- und ---- END CERTIFICATE ----. Kopieren Sie den gesamten Inhalt zwischen diesen beiden Zeilen - einschließlich der Zeilen - in eine Textdatei. Übertragen Sie diese Textdatei in eine Datenstromdatei auf Ihrem IBM i.
Beispiel
Die Textdatei kann den Namen myhost.p7b haben und in die Stromdatendatei /tmp/myhost.p7b übertragen werden. Wir verwenden diesen Dateinamen in den folgenden Beispielen:
Importieren Sie das signierte Zertifikat in die Server-PSE mithilfe des folgenden Befehls:
./sapgenpse import_own_cert -p SAPSSLS.pse -x <PASSWORD> -c <CA-response-file>
Beispiel
./sapgenpse import_own_cert -p SAPSSLS.pse -x pass -c /tmp/myhost.p7b
Prüfen Sie die Server-Zertifikatskette mithilfe des folgenden Befehls:
./sapgenpse get_my_name -p SAPSSLS.pse -x <PASSWORD> -v
Beispiel
./sapgenpse get_my_name -p SAPSSLS.pse -x pass -v
Sie setzen die Änderungen, die Sie in Schritt 1.a) vorgenommen haben, auf das Benutzerprofil SAPADM zurück, indem Sie das Programm QP2TERM mit der Funktionstaste F3 verlassen und den folgenden Befehl eingeben: CHGUSRPRF USRPRF(SAPADM) INLMNU(*SIGNOFF) LMTCPB(*YES)
Melden Sie sich als ein Benutzerprofil mit den speziellen Berechtigungen *SECADM und *ALLOBJ an, beispielsweise als Benutzerprofil QSECOFR und führen Sie den Befehl CALL PGM(QP2TERM) aus, bevor Sie den folgenden Befehl eingeben, der den SAP-Host-Agenten erneut startet:
/usr/sap/hostctrl/exe/saphostexec -restart
Bereiten Sie die Client-PSE vor.
Die Client-PSE enthält die Namen und die öffentlichen Schlüssel der vertrauenswürdigen Zertifikate von der CA sowie das Client-Zertifikat, das an den SAP-Host-Agenten gesendet wird, wenn die SSL-Verbindung hergestellt ist.
Die Konfigurationsschritte sind Client-spezifisch. Aus diesem Grund beschreiben wir sie auf generische Weise. Folgen Sie den Anweisungen in der entsprechenden Client-Dokumentation.
Beispiele für mögliche Clients sind die SAP Management Console (SAP MC), der Diagnostics-Agent im SAP Solution Manager oder die Software des SAP NetWeaver Landscape Virtualization Management (LVM) (vormals Adaptive Computing Controller (ACC)).
Empfehlung
Wenn Sie die oben stehende Vorgehensweise erfolgreich angewendet haben, ist der SAP-Host-Agent auch für den Port 1129 für die SSL-Kommunikation verwendbar.