Zertifikats-Handling SAP mithilfe der SAP Crypto-lib / SAPGENPSE und der STRUST

Die SAP Transaktion STRUST ist für das Zertifikats-Management in den SAP Systemen verantwortlich. Hierbei verwendet die Transaktion STRUST eine sogenannte PSE – die hier als „Zertifikats-Storage“ analog des Java-Keystore verwendet werden.
Grundsätzlich kann man dort nur ein einziges privates Zertifikat ablegen!

In der Transaktion STRUST lassen sich Zertifikate grundsätzlich auch generieren. Die Verwendung von alternativen DNS-Attributen hingegen ist dort nicht möglich.

Benötigte Software:

Aus der SAP Hilfe

  1. Navigieren Sie zur Seite http://service.sap.com/swcenter.
  2. Melden Sie sich mit Ihrer SAP S-User ID an und navigieren Sie zu Download → SAP Cryptographic Software.

Die folgenden Schritte sind ursächlich von diesem Artikel inspiriert:
https://blogs.sap.com/2015/10/26/subject-alternative-name-san-with-sapgenpse-commoncryptolib/

Um alternative DNS-Namen – die nicht aus dem Common-Name (CN) stammen muss man mithilfe des Kommandozeilen-Werkzeugs SAPGENPSE aus der SAP Crypto-lib die PSE erzeugen. Dies ist auch auf Windows und Betriebssystemzugang zum SAP System möglich – wenngleich das „sapgenpse“ auf den Servern bei installierter SAP Crypto-Lib immer verfügbar ist.

Grundsätzlich muss die Umgebungsvariable SECUDIR nach der Installation gesetzt werden.

Mit dem folgenden Befehl wird eine neue PSE (ohne Passwort) mit eine Schlüsselstärke von 4096 bit und dem SHA256 generiert – der Certificate-Signing-Request (CSR) wird am ende gleich mit ausgespuckt:

sapgenpse gen_pse -s 4096 -a sha256WithRsaEncryption -p NEUE_PSE.pse "CN=mein.server.org, OU=meineorganisation@server.org, O=Meinefirme, C=DE"

Wenn der folgende Parameter mitverwendet wird (ein – bis mehrfach) können weitere DNS-Namen die für den Server gültig sind mit als Alias eingefügt werden.  Dies geht auch für Emails – nach einem alias:

sapgenpse gen_pse -s 4096 -a sha256WithRsaEncryption -p NEUE_PSE.pse
-k GN-dNSName:einandereralias.server.org
-k GN-rfc822Name:meineorganisation@server.org
"CN=mein.server.org, OU=meineorganisation@server.org, O=Meinefirme, C=DE"

Die Zertifikatsantwort kann dann mit dem folgenden Befehl eingelesen werden:

sapgenpse import_own_cert -p NEUE_PSE.ps -c fiorie.pem

Anschliessend muss in die STRUST im Zielsystem auf Änderbar gestellt werden und mit „importieren – Speichern als“ die neue PSE für den Zielzweck – meist SSL-Server gespeichert werden.

 

Anmerkung – bei mir musste zuerst die PSE für Web-Server komplett gelöscht werden. Ansonsten war in den Server instanzen noch das alte Zertifikat vorhanden.

Grundsätzlich ist es auch möglich mithilfe des Werkzeugs ein in z.b. OpenSSL erzeugtes Zertifikat und die komplette Vertrauenskette so in eine PSE umzuwandeln.
Man-Page / Hilfe des Generierungsbefehls
sapgenpse gen_pse -h
Create a new PSE and a PKCS#10 certification request or
or create a (renewal) PKCS#10 certification request for an existing PSE
Usage: gen_pse -p [other-options] [Distinguished name]
Options:
-p filename for (new) PSE
-r filename for PKCS#10 request (default: stdout)
-lps use LPS to protect the new PSE
-a algorithm DSA, ECDSA or RSA (default is RSA)
with GOST plugin: GostR3410-2001
-a also supports an extended syntax for specifying
key type, strength and signature algorithm:
Use this syntax if the CA requires that the certification
request is signed with a specific algorithm:
::
keyType : DSA, ECDSA or RSA
strength : key size or the name of the ECDSA curve
(P-192, P-224, P-256, P-384 or P-521)
hashAlg : hash algorithm used for the signature
of the self signed certificate
and the certification request
(SHA1, SHA224, SHA256, SHA384, SHA512)
Examples:
RSA:2048:SHA256
DSA:1024:SHA1
ECDSA:P-256:SHA1
-s key size in Bits (default=alg-specific, rsa=DEFAULT_RSA_KEYSIZE
, dsa=DEFAULT_DSA_KEYSIZE)
-x PIN/Passphrase for PSE (default: query interactively)
-noreq do not create/print a PKCS#10 certification request
-onlyreq create PKCS#10 certification request for an existing PSE
-2 create PSE format v2
-4 create PSE format v4
-j Add Subject Alternative Names from existing PSE certificate
to the certification request (with -onlyreq).
-k Add Subject Alternative Names to the certification request.
Multiple -k parameters are supported to create a list
of alternative names in the request.
If the type of the name is not derivable, the respective prefix
must be given:
'GN-rfc822Name:', 'GN-dNSName:', 'GN-uRI:',
'GN-iPAddress:', 'GN-directoryName:', 'GN-registeredID:'
Syntax to specify a name of type 'otherName':
GN-otherName:::
oid : 'UPN' or object identifier (1.2.840...)
valueType: Encoding type of value
'HEX': value is hex string of ASN.1 DERCode
'UTF8String': value will be encoded as UTF8String
value : Name value (hex ASN.1 DERCode or string)
Examples:
-k GN-dNSName:www.sap.com
-k GN-iPAddress:127.0.0.1
-k GN-otherName:UPN:UTF8String:john.doe@sap.com
-k GN-otherName:1.3.6.1.4.1.694.2.2.2.444:HEX:0403020507
-h print this help
-v verbose
Examples:
- create an lps protected file SAPSNCS.pse with server DName
(prompts for PSE password)
sapgenpse gen_pse -lps -p SAPSNCS.pse "CN=SAPServerABC, C=DE"
- create an lps protected file SAPSNCS.pse with 2048 RSA key and SHA256 Hash Alg
orithm
(prompts for PSE password)
sapgenpse gen_pse -lps -p SAPSNCS.pse - a RSA:2048:SHA256 "CN=SAPServerABC, C=
DE"
- create PKCS#10 certification request for an existing PSE
sapgenpse gen_pse -p SAPSNCS.pse -onlyreq -r cert.p10
- create an lps protected file SAPSNCS1.pse with server DName and PKCS#10 Reques
t
(prompts for PSE password)
sapgenpse gen_pse -lps -p SAPSNCS1.pse "CN=SAPServerABC1, C=DE" -r cert1.p10
- create an file SAPSSLS.pse with server DName and 2 DNS as SubjectAltName
(prompts for PSE password)
sapgenpse gen_pse -p SAPSSLS.pse -k GN-dNSName:www.sap.com "CN=www.sap.de, DNS
=www.sap.fr, C=DE"
- Add Subject Alternative Names from the existing SAPSSLS.pse in the certificate
request
(prompts for PSE password)
sapgenpse gen_pse -p SAPSSLS.pse -j -onlyreq -r cert.p10

Zertifikats-Handling SAP mithilfe der SAP Crypto-lib / SAPGENPSE und der STRUST

First Hands on migrated SAP BW to HANA production system

The first test migration to HANA looks good at first glance. The performance of the database is impressive.

But as many features are implemented in SAP BW queries – the performance is not that impressive as I hoped. The monitoring of the queries shows me that the database result is available really fast. But the calculation steps following in ABAP are (still) slow.

Also – this is a first impression of a test-migration:

  • The test-system running the abap-stack isn’t that powerful as our productive server.
  • Many objects are still on the row-store of the HANA (because they are not migrated to in-Memory for several reasons).

For the latest details follow me on twitter: @jay_ar

 

First Hands on migrated SAP BW to HANA production system

SAP HANA – Eine Meinung

Die SAP bewirbt aktuell ihr „High-Performance Analytic Appliance“ HANA als ob der Teufel hinter ihnen her wäre. HANA ist im wesentlichen Hardware mit einer großen menge Speicher und CPU. (Wir kennen das schon vom BW Accelerator (BWA).) Das Ding kann einmal als Datenbank – und einmal als Logik-ausführende Maschiene funktionieren. Alles um große Datenmengen extrem Performant zu bearbeiten.

Der Hintergund ist recht simpel – jeder Büro-Rechner hat heute 3Ghz CPUs und 4Gb Speicher. Auswertungen in Excel sind sozusagen „In-Memory“ – die durschnittlichen Server – sind aus dieser Perspektive – schlechter pro User ausgestattet. Datenbanken haben auch mit einem RAID-10 kaum eine Chance gegen eine Pivot-Liste in Excel im Speicher.

Schön das die SAP so indirekt zugibt das der ABAP-Stack eine alterslahme Ente ist.
Nicht so schön : Sie wollen natürlich Geld dafür haben. Und – jedes Stück ABAP muss für das Teil neu entwickelt werden. Blöder geht es kaum…

Die die Geld in den BWA gesteckt haben – wollen natürlich wissen ob sie das HANA dann auch damit betreiben können – ohne große Zusatzkosten. Das muss sich aber erst noch zeigen.

Da ABAP ja der SAP gehört – frage ich mich warum Sie nicht einen Logik-Kern schaffen der ABAP direkt auf der HANA ausführt. Dann müsste auch nichts neu entwickelt werden (Investitions-Schutz) und ich könnte transparent die HANA in mein SAP einklinken. Das würde ich als Kundenfreundlich empfinden.

Fazit
Gut das die SAP etwas tut – der Weg ist der richtige. Ob sie die Kritik aus diesem kleinen Blog – ich hatte auch schon die Chance das mit den HANA-Entwicklern mal zu diskutieren – mit aufnehmen wird sich zeigen.

SAP HANA – Eine Meinung