Benutzer-Werkzeuge

Webseiten-Werkzeuge


forms:oracle_reports_12_ssl

Oracle Reports Server 12g 12.2.1.3.0 mit SSL über Port 443 aufrufen

Oracle weblogic 12.2.1.3.0 Oracle Report Server / Windows 2016

Aufgabe:

Der Aufruf von Oracle Reports Berichten soll mit SSL geschützt werden und per HTTPS ohne Port Angabe aufrufbar sein.

Achtung - Falls der Reportsserver bereits bei der Installation mit SSL angelegt ist, ist bereits ein Teil der Konfig enthalten und das kann verwirren! Genau prüfen und Vergleichen ob das so noch passt!

Ablauf falls noch kein SSL konfiguriert wurde:

  • Password für die Keystore ausdenken und sauber dokumentiert ablegen
  • Password für die PemPhrase des Private Key ausdenken und sauber dokumentiert ablegen
  • Keystore in WebLogic anlegen
  • Zertifikats Request über Weblogic anlegen
  • Konfiguration in WebLogic für SSL anpassen
  • Keystore aus Weblogic exportieren
  • CA Root und Erstelltes Zertifikat der Maschine im Trust Store hinterlegen
  • AdminServer und WLS_REPORT SSL und Keystore konfigurieren
  • Nodemanager Config Datei anpassen
  • Alle Server Komponenten neu starten und testen
  • Pürfen das die Windows Dienste auch mit „LOG on“ als Eigentümer des WebLogics angemeldet werden!
Die Passwörter sauber dokumentieren! Diese Art von Fehlern in den Logs zu finden ist sehr aufwendig!

In meiner Umgebung traten diverse Probleme in deren Folgen mit der folgenden Lösung ein Erfolg erzielt wurde.

Vermutlich kann das aber auch viel einfacher umgesetzt werden.

In ersten Schritte wurde versucht ein WildCard Zertifikat zu verwenden, allerdings ist mir nicht gelungen den Private Key von diesem Zertifikat in den Keystore zu importieren

In Folge daher einen Zertifikatsrequest über die Oberfläche erstellt und bearbeitet und dann diese erzeugen Keystore aus WebLogic exportiert, diesen dann wiederum in die Konfiguration eingebunden.

In den Trust Store beide Zertifikate ( das Root CA Zertifikat und das signierte Server Zertifikat). Evlt. reicht aber auch schon nur das Server Zertifikat.

Theoretisch müsste dieser Schritt überflüssig sein, allerdings ist mir nicht gelungen direkt den erzeugten Keystore aus der Weblogic Oberfläche anzusprechen.


DemoCA Keystore ersetzen

Welcher Keystore ist im Default hinterlegt?

Was haben wir:

  • DemoIdentity.jks — Contains a demonstration identity certificate configured for WebLogic Server.
  • DemoTrust.jks — Contains the certificate authority certificates that are trusted by WebLogic Server.

Menü /Domain_ReportSPA/ReportSPA > Keystore - Im „demoidentity Keystore“ anmelden

Bzgl. Passwärter siehe „What are the Default Passwords for Demo Identity and Demo Trust Keystores (Doc ID 2886289.1)“

Ersetzen

Ablauf:

Steps To Clear This Waning Message On WIndows OS 
1. Use the keytool command to create a JKS file that contains the custom CA key and certificate. For example:
2. Open command terminal, set WLST_EXT_CLASSPATH
3. Connect to the admin server with WLST
4. Import the JKS file into the KSS keystore kss://system/castore
5. Export the certificate from kss://system/castore, and import it into kss://system/trust
6. Add the following property to the jps-config.xml and jps-config-jse.xml files in
/Domain/config/fmwconfig
7. Restart all the servers when above actions are done

Siehe die Details im Dokument hinter unter „Replace The Demonstration CA With A Custom CA Immediately (Doc ID 2313313.1)“

Leider aktuelle keine Testumgebung mehr die frisch genug ist um das so zu testen.

Weitere Informationen

siehe auch

  • Regenerating the EM 12c-WLS Demo Identity Certificate with 1024 bit Keystrength (to fix the browser error: ssl_error_weak_server_cert_key) (Doc ID 1510058.1)
  • „What are the Default Passwords for Demo Identity and Demo Trust Keystores (Doc ID 2886289.1)“

Keystore anlegen falls zuvor noch kein Store existiert hat

Speicherort definieren

Verzeichniss für den Keystore anlegen:

mkdir E:\oracle\keystore

Keystore über die Oberfläche erzeugen

An der Admin Oberfläche anmelden.

Über „Weblogic Domain“ / „Securtiy“ / „Keysore“ die Key Store Seite öffnen.

Über den Button „+Create Keystore“ einen neue Keystore anlegen:

 Oracle Report Server Keystore

Internen Keystore für späteren CA Request erzeugen

  • Über „Manage“ (Brillen Symbol) Unterdialog auf den Keystore öffnen
  • Keypair mit mit den Server Daten anlegen
  • CA Request anlegen (darauf achten sich das Private Key Password gut zu merken!)
  • Als Request exportieren
  • In der CA diesen signieren und wieder importierten.

Keystore aus dem Weblogic exportieren

Komando Zeile aufrufen:

E:\oracle\fmw\oracle_common\common\bin> .\wlst.cmd
 
wls:/offline>
wls:/offline> connect('weblogic','xxxxxxx','localhost:7001')
Connecting to t3://localhost:7001 with userid weblogic ...
 
 
wls:/ReportPisa/serverConfig/> svc = getOpssService(name='KeyStoreService')
 
 
wls:/ReportPisa/domainRuntime/> svc.exportKeyStore(appStripe='system', name='reportServer', password='xxxxxxxx',aliases='repServ.gpi.local', keypasswords='xxxxxx', type='JKS',filepath='E:\oracle\keystore\identity.jks')
 
 
Keystore exported. Check the logs if any entry was skipped.
 
 
wls:/ReportPisa/domainRuntime/> exit()

Inhalt anzeigen lassen:

cd E:\oracle\fmw\oracle_common\common\bin
 
keytool.exe  -list  -keystore E:\oracle\keystore\identity.jks -storepass gpiKeyStorePWD
 
Keystore type: JKS
Keystore provider: SUN
 
Your keystore contains 1 entry
 
repServ.gpi.local, 06.10.2020, PrivateKeyEntry,
Certificate fingerprint (SHA1): xx:xx: .... xx

Trust Ca hinterlegen

Im ersten Schritt in der trust.jks

keytool.exe -import -v -trustcacerts -alias  repServer.gpi.local -file "E:\oracle\keystore\gpi-rootCA.der" -keystore  E:\oracle\keystore\trust.jks -storepass gpiKeyStorePWD -noprompt
 
Certificate was added to keystore
[Storing E:\oracle\keystore\trust.jks]

Im zweiten Schritt in der identity.jks

keytool.exe -import -v -trustcacerts -alias  CA01-intern.gpi.local -file "E:\oracle\keystore\rootCA02.der" -keystore  E:\oracle\keystore\identity.jks -storepass gpiKeyStorePWD -noprompt
 
Certificate was added to keystore
[Storing E:\oracle\keystore\identity.jks]
 

In einem Weblogic Cluster die erzeugten Dateien auf allen Knoten verteilen!

Wichtige Befehle für die Pflege des Keystore bei Fehlern / Debuggen

Auslesen mit:

keytool.exe  -list  -keystore E:\oracle\keystore\identity.jks -storepass gpiKeyStorePWD

Falsches Zertifikat löschen:

keytool -delete -alias srvgpirp01.pipperr.local  -keystore E:\oracle\keystore\identity.jks -storepass gpiKeyStorePWD

Alias anpassen:

keytool.exe -changealias -alias "te-gpirp01_sha2-809a34dc-6999-4a7a-805c-6d8fcdf35359" -destalias "srvgpirp01.pipperr.local" -keypass gpiKeyStorePWD -keystore E:\oracle\keystore\identity.jks -storepass gpiKeyStorePWD

Komplettes Zertifikat aus einer Windows CA (inkl. Privat Key):

keytool -importkeystore -deststorepass gpiKeyStorePWD -destkeystore E:\oracle\keystore\identity.jks -srckeystore E:\oracle\keystore\gpipkcs12.pfx -srcstoretype PKCS12

Weblogic Managed Server konfigurieren

Für jeden definierten Server in der Domain.

Keystore hinterlegen

In der Admin Oberfläche den WLS_REPORTS Server ausswählen.

„Home“ / „Administration“ / „Keystores“ einen eigenen Key Store definieren.

  • Keystore Type auf „Custom Identity and Custom Trust“ setzen
  • Custom Identity Keystore auf Pfad „E:\oracle\keystore\identity.jks“
  • Custom Identity Keystore Type auf „JKS“
  • Password setzen und bestätigen

Trust hinterlegen:

  • Custom Trust Keystore auf Pfad „E:\oracle\keystore\trust.jks“
  • Custom Trust Keystore Type auf „JKS“
  • Password setzen und bestätigen

SSL Konfigurieren

  • Identity and Trust Locations Keystores
  • Private Key Location from Custom Identity Keystore
  • Private Key Alias repServer.gpi.local (wie der Severname!)
  • Private Key Passphrase Password hinterlegen
  • Certificate Location from Custom Identity Keystore
  • Advanced Section ⇒ Hostname Verification auf None

General Settings setzen

  • SSL Listen Port Enabled anwählen
  • SSL Listen Port 443

Admin Server

Gleiches für den Admin Server

Konfigurationdatei überprüfen

Datei E:\oracle\fmw\user_projects\domains\ReportGPI\config\config.xml öffnen und prüfen das die Einträge sinnvoll aussehen bei WLS_REPORTS und bei AdminServer :

..
<key-stores>CustomIdentityAndCustomTrust</key-stores>
<custom-identity-key-store-file-name>E:\oracle\keystore\identity.jks</custom-identity-key-store-file-name>
<custom-identity-key-store-type>JKS</custom-identity-key-store-type>
<custom-trust-key-store-file-name>E:\oracle\keystore\trust.jks</custom-trust-key-store-file-name>
<custom-trust-key-store-type>JKS</custom-trust-key-store-type>
<custom-trust-key-store-pass-phrase-encrypted>{AES}xxxxxxxxxxxxxxxxxxxxxxxx=</custom-trust-key-store-pass-phrase-encrypted>
..    

Aus mir nicht nachvollziebaren Gründen stand bei mir regelmäßig das Password als custom-identity-key-store-type!

Daher die Datei genau prüfen!

Neu Starten

Wenn über den Service gestartet wird, darauf achten das der Service „Log on“ Account auf den Eigentümer des Weblogic steht!

Managed Server neu starten

Testen über https://repServer.gpi.local/reports/rwservlet/showenv


Weblogic Node Manager konfigurieren

Datei „E:\oracle\fmw\user_projects\domains\ReportGPI\nodemanager\nodemanager.properties“ edititeren

KeyStores=CustomIdentityAndCustomTrust
CustomIdentityKeystoreType=jks
CustomIdentityKeyStoreFileName=E\:\\oracle\\keystore\\identity.jks
CustomIdentityKeyStorePassPhrase=xxxxxxxxxx
CustomIdentityPrivateKeyPassPhrase=xxxxxxx
CustomIdentityAlias=repServer.gpi.local
CustomTrustKeystoreType=jks
CustomTrustKeyStoreFileName=E\:\\oracle\\keystore\\trust.jks
CustomTrustKeyStorePassPhrase=

Neu starten


Debuggen bei Problemen

Parameter um das Logging für SSL zu aktiveren:

E:\oracle\fmw\user_projects\domains\ReportGPI\bin\startWebLogic.cmd

# Zeile 94 zu set JAVA_OPTIONS hinzufügen
-Dweblogic.debug.DebugSecuritySSL=true -Dweblogic.debug.DebugSSL=true -Dweblogic.StdoutDebugEnabled=true -Dweblogic.log.StdoutSeverityLevel=Debug -Dweblogic.log.LogSeverity=Debug

Darauf achten das in der Test Session die ORACLE_HOME Variabe auf des FWM Home gesetzt ist! Sonst funktioniert der Report Server nicht!

Stoppen der Weblogic Dienste über den Dienst und alle manuel starten:

In Console 1 Node Manager, warten bis der Läuft:

.\setDomainEnv.cmd
 
.\startNodeManager.cmd

In Console 2 Admin Server

cd E:\oracle\fmw\user_projects\domains\ReportPisa\bin
 
 
.\setDomainEnv.cmd
 
.\startWebLogic.cmd

In Console 3 Report Instance

cd E:\oracle\fmw\user_projects\domains\ReportPisa\bin
 
 
.\setDomainEnv.cmd
 
.\startManagedWebLogic.cmd WLS_REPORTS t3://srpt12.s-akaby.local:7001

Nach dem Test Optionen wieder deaktivieren!

Problem 1

Beim start des Nodemanager:

 .\startNodeManager.cmd
 
..
weblogic.security.internal.encryption.EncryptionServiceException: com.rsa.jsafe.JSAFE_PaddingException: Invalid padding.
at weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptBytes(JSafeEncryptionServiceImpl.java:144)
..

⇒ Nodemanager Fails To Start In SSL Mode With „weblogic.security.internal.encryption.EncryptionServiceException: com.rsa.jsafe.JSAFE_PaddingException: Invalid padding“ (Doc ID 2711124.1)

Passworte in der E:\oracle\fmw\user_projects\domains\ReportPisa\nodemanager\nodemanager.properties neu setzen!

Problem 2
Hostname verification failed: HostnameVerifier=weblogic.security.utils.SSLWLSHostnameVerifier, hostname=localhost.

Unter Advanced SSL Settings die Hostname Auflösung auf NONE stellen (siehe Konfiguration weiter oben!).



Zertifikat beim TomCat Proxy hinterlegen

In dieser Umgebung wird der Report Aufruf über eine Hauseigene Applikation „getunnelt“, da der Aufruf nun in SSL erfolgt muss in Tomcat auch das Root CA Zertifikat hinterlegt werden.

CA Zertifikat hinterlegen auf einem Keystore mit keinem hinterlegten Passwort „Dummy -storepass „changeit“ übergeben!“ mit:

keytool -import -noprompt -trustcacerts -alias repServer.gpi.local -file ""E:\oracle\keystore\gpi-rootCA.der" -keystore "E:\server\jdk1.8.0_161\jre\lib\security\cacerts" -storepass "changeit"


Quellen

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
"Autor: Gunther Pipperr"
forms/oracle_reports_12_ssl.txt · Zuletzt geändert: 2025/04/25 21:20 von gpipperr