RSS

Schlagwort-Archive: Netweaver

SAP NW AS Java 7.3: Logging/Tracing konfigurieren und programmieren

SAP NW AS Java 7.3: Logging/Tracing konfigurieren und programmieren

Motivation

Java Applikationsserver bieten üblicherweise eine Vielzahl von Log- und Trace-Files an, anhand derer man sich über den Zustand des Servers und der Anwendungen, die auf ihm laufen, informieren kann. Wenn man eigene Applikationen für einen Applikationsserver entwickelt, sollte man diese ebenfalls mit Logging- und Tracing-Ausgaben ausstatten, um eine spätere Fehlersuche zu erleichtern. Was die SAP unter Logging und Tracing versteht, kann man auf dem Link „The Difference Between Logging and Tracing“ nachlesen. In einem aktuellen Projekt entwickle ich gerade einen WebService, der auf einem SAP Netweaver Application Server Java (SAP NW AS Java)  laufen soll. Der SAP NW AS Java ist in der aktuellen Version 7.3 installiert.

Anwendungsentwicklung

Eine Anwendung um Logging- und Tracing-Fähigkeiten zu erweitern, ist eigentlich relativ einfach. Man definiert für die Web-Anwendung an sich eine sog. Category und für die verwendeten Klassen sog. Locations (weiterführene Infos: Logging Overview). Das sieht dann etwa so aus: Man kann Ausgaben in verschiedene „Klassen“, besser gesagt „Severities“ einteilen. Z.B. Informationen, Warnungen, Fehler, Debug-Ausgaben etc. Je nachdem, wie man den Applikationsserver konfiguriert, werden die entsprechenden Meldungen ausgegeben. Für den SAP NW AS Java gibt es das Netweaver Developer Studio (NWDS), ein von der SAP angepasste Eclipse IDE. Für jeden Applikationsserver sollte man die passende NWDS Version verwenden, dann stimmen auch die Libraries mit denen des Servers überein. Beispiel:

package jkhofmann.dlinkddns.com

...
import com.sap.tc.logging.*;
...

public class TestKlasse {
	private static final Location loc = Location.getLocation("jkhofmann.dlinkddns.com.TestKlasse");
	private static final Category cat = Category.getCategory(Category.APPLICATIONS, "MeineApp");
	...

	public String testMethode(Parameter par) {
		String method="testMethode";
		loc.entering(method);
		...
		// Ausgaben:
		loc.infoT("Methode wurde mit folgenden Paramtern aufgerufen: " + par);
		loc.debugT(method, "Debugausgabe");
		...
		loc.exiting();
	}
	...
}

Nach dem Deployment ist die Anwendung bereit zur Konfiguration

Konfiguration

Damit alles schön ausgegeben wird, muss man den Applikationsserver noch entsprechend konfigurieren. Nach dem Einloggen als J2EE Admin, den Netweaver Administrator (NWA) starten und den Reiter „Fehleranalyse“ und den Unterpunkt „Protokolle und Traces“ auswählen: Hier sind zwei Punkte interessant: „Protokollkonfiguration“ und „Log Viewer“. Für die Konfiguration muss man den Link „Protokollkonfiguration“ öffnen. Die Logging-Einstellung ist  unter „Anzeigen“ durch Auswahl von „Logging-Kategorien“ zu sehen: In dieser Einstellungen sind die „Categories“ (s.o.) zu finden. Im Beispiel haben wir „CATEGORY.APPLICATIONS“ angegeben, d.h. die Einstellungen für unsere Applikation sind unter „ROOT CATEGORY/Applications/MeineApp“ zu finden. Hier wählt man die gewünschte Gewichtung aus und speichert die Einstellungen mit „Konfiguration sichern“. Zur Einstellung für das Tracing bzw. die Locations (s.o.) wählt man unter „Anzeigen“ den Punkt „Trace Locations“ aus: Die entsprechenden Einstellungen sind unterzu finden. Wir haben im Beispiel nur eine Klasse instantiiert und finden diese unter

jkhofmann.dlinkddns.com.TestKlasse

Auch hier werden die Einstellungen mit „Konfiguration sichern“ gespeichert. Nach der Konfiguration kann man sich die Logging- und Tracing-Ausgaben mit dem „Log Viewer“ anschauen und nutzen.

Nutzung

Wie bereits eingangs erwähnt, dienen diese Ausgaben dazu, verschiedene Anwendungsfälle abzudecken:

  • Administratoren über den aktuellen „Zustand“ des Servers zu informieren
  • dem Betrieb eine Möglichkeit zu geben, die Fehlersuche zu vereinfachen
  • durch schnelles Umkonfigurieren den Detaillierungsgrad der Ausgabe zu erhöhen
  • Protokollierung verschiedenster Informationen
Hierfür ist der „Log Viewer“ zuständig. Wählen Sie hierzu unter „Sicht“ > „Open View…“ die „Developer Traces“ aus:
Beispielausgaben:

 

Fazit

Ich finde diese Funktionalität ist ein Muss für alle Applikationen, die auf einem Applikationsserver laufen. Wie oben beschrieben, ist es relativ einfach möglich, Logging- und Tracing auf einem SAP NW AS Java für eigene Anwendungen zu nutzen.

Links

 

Schlagwörter: , , , , , , ,

SAP Netweaver SSL/HTTPS


Einleitung

Das Secure Sockets Layer (SSL) Protokoll dient zum Sichern von Verbindungen auf der Transportschicht (Transport Layer Security, TLS). Das Protokoll TLS ist die Nachfolgebezeichnung des Protokolls SSL (Wikipedia: Seit Version 3.0 wird das SSL-Protokoll unter dem neuen Namen TLS weiterentwickelt und standardisiert, wobei Version 1.0 von TLS der Version 3.1 von SSL entspricht)

(Abbildung entnommen aus Wikipedia)

Die Verwendung der Transport Layer Security (TLS) bietet folgenden Schutz:

  • Authentifizierung
    Die Kommunikationspartner (Server, Client oder beide) können authentifiziert werden.
  • Integrität und Vertraulichkeit der Daten
    Die zwischen dem Client und dem Server übertragenen Daten sind verschlüsselt, wodurch der Schutz der Integrität und Vertraulichkeit geboten wird. Ein Abhörer kann auf die Daten nicht zugreifen oder sie manipulieren.

SAP betreibt den Applikationsserver Netweaver in drei Variationen:

  • AS ABAP
  • AS Java
  • Double Stack (AS ABAP + AS JAVA)

Schlüssel und Zertifikate werden für den AS ABAP und den AS Java an unterschiedlichen Orten abgelegt:

  • Auf dem AS ABAP wird bei Verwendung der SAP Cryptographic Library für SSL oder SNC jedes Schlüsselpaar in einer Datei, einer Persönlichen Sicherheitsumgebung (Personal Security Environment, PSE) abgelegt. Um die PSEs zu pflegen, verwenden Sie den Trust-Manager (Transaktion STRUST).
  • Für SSL auf dem AS Java werden die Schlüsselpaare in Keystore-Einträgen in Keystore-Sichten abgelegt. Um die Schlüssel zu pflegen, verwenden Sie den Keystore-Service.

Folgende Informationen umfaßt die PSE bzw. Keystore-Sicht:

  • Public-Key-Schlüsselpaar des Servers
    das für die verschiedenen Sicherheitsfunktionen (Signieren, Signaturen verifizieren, Nachrichten ver- und entschlüsseln) zu verwenden ist
  • Zertifikatsliste
    die Liste der vertrauenswürdigen Kommunikationspartner

Je nachdem, ob der AS ABAP bzw. AS JAVA als Client oder Server einer SSL-Verbindung arbeitet, sind unterschiedliche PSEn/Keystore-Sichten zu verwenden:

  • SSL-Server-PSE/service_ssl Keystore:
    Der SAP Applikationsserver arbeitet als Server einer SSL Verbindung
  • SSL-Client-PSE/neuer Eintrag im Keystore:
    Der SAP Applikationsserver arbeitet als Client einer SSL Verbindung

Bevor Sie SSL auf einem SAP Netweaver Applikationsserver verwenden können, müssen Sie diesen zunächst dafür konfigurieren (siehe: AS ABAP für SSL-Unterstützung konfigurieren bzw. Transport Layer Security on the AS Java).

Schlüsselpaare erzeugen

Als Verschlüsselungstechnik wird die Public-Key-Technologie verwendet (siehe auch: Vertrauensbeziehung aufbauen). In diesem Fall wird jeder Komponente ein Schlüsselpaar ausgestellt, das aus privatem und öffentlichem Schlüssel besteht. Der private Schlüssel wird sicher auf dem Server abgelegt und der öffentliche Schlüssel wird in Form eines Public-Key-Zertifikats an die Kommunikationspartner verteilt. Die Vertrauensbeziehung wird durch Überprüfen des öffentlichen Schlüssels des Kommunikationspartners, der mit dem Public-Key-Zertifikat geliefert wird, eingerichtet.

Für die serverseitige Authentifizierung wird also für den Server eine Schlüsselpaar erzeugt, der Server erhält den privaten Schlüssel und der Client den öffentlichen Schlüssel. Bei clientseitiger Authentifizierung erhält der Client den privaten Schlüssel und der Server den öffentlichen Schlüssel.

Ein Zertifikat kann man selbst erstellen (selbstsignierte Zertifikate) oder von einer vertrauenwürdigen CA (z.B. Verisign etc.) ausstellen lassen. Der Vorteil von selbst signierten Zertifikaten gegenüber gekauften ist ganz einfach, sie kosten NICHTS!

Es besteht die Möglichkeit eine freie Lösung, wie z.B. OpenSSL zu verwenden (siehe: Howto selbstsigniertes SSL Zertifikat erstellen) oder mit SAP Hilfsmitteln zu arbeiten (siehe: PSE für den Server mit SAPGENPSE anlegen).

Für die Verwendung von SAP Hilfsmitteln ist es wichtig, daß folgende Voraussetzungen erfüllt sind:

  • Die SAP Cryptographic Library ist auf dem Server installiert.
  • Die Umgebungsvariable SECUDIR wurde auf den Ablageort der PSE gesetzt.

Um selbstsignierte Zertifikate unter Verwendung von SAP Hilfsmitteln zu erzeugen, gehen Sie wie folgt vor. Generieren Sie mit dem Befehl get_pse die PSE des Servers, die das Public-Key-Schlüsselpaar und ein Publik-Key-Zertifikat enthält. Wenn Sie eine vertrauenswürdige CA verwenden, können Sie auch den Befehl get_pse verwenden, um eine Zertifikatsanforderung zu generieren. Standardmäßig wird alles erzeugt, allerdings können Sie mit den Optionen -noreq oder -onlyreq die Zertifikatsanforderung explizit auslassen (= selbstsignierte Zertifikate) oder erzeugen. Der Befehl sapgenpse ist unter Linux im Verzeichnis /sapmnt/<SYSID>/exe/ zu finden.

Beispiel: PSE und selbstsigniertes Zertifikat für den Anwendungsserver erzeugen

Mit der folgenden Befehlszeile erzeugen Sie eine PSE für den Anwendungsserver (<SID>= ABC), die ein selbstsigniertes Zertifikat enthält. Eine Zertifikatsanforderung ist nicht erforderlich. Die PSE befindet sich in D:usrsapABCDVEBMGS28secABC.pse. Die PIN, die die PSE schützt, lautet abcpin. Der Distinguished Name des Servers lautet CN=ABC, OU=Test, O=MyCompany, C=DE.

sapgenpse get_pse -p D:usrsapABCDVEBMGS28secABC.pse
-noreq -x abcpin "CN=ABC, OU=Test, O=MyCompany, C=DE"

Hinweis: Setzen der Umgebungsvariablen ist eventuell notwendig:

export LD_LIBRARY_PATH=/sapmnt/NWA/exe
export SECUDIR=/usr/sap/NWA/DVEBMGS00/sec

Die Syntax zum Befehl sapgenpse ist unter PSE für den Server mit SAPGENPSE anlegen zu finden.


 
Ein Kommentar

Verfasst von - April 26, 2011 in Applikationsserver

 

Schlagwörter: , , , , ,

 
Erstelle eine Website wie diese mit WordPress.com
Jetzt starten