Java Ausnahmeliste via Gruppenrichtlinien verwalten
Bekanntlich werden selbstsignierte Anwendungen oder Anwendungen ohne Zertifikat (nicht signierte Apps) ab Java 7 Update 51 standardmäßig blockiert. Unter Java 8 sieht dies folgendermaßen aus:
Die Ausführung der Anwendung wurde durch Java-Sicherheitseinstellungen blockiert
Aus Sicherheitsgründen müssen die Anwendungen die Anforderungen der Sicherheitsstufen “Hoch” oder “Sehr hoch” erfüllen, oder sie müssen Teil der Ausnahmeliste sein, um ausgeführt werden zu können.
Zur Umgehung dieses Problems bestanden unter Java 7 früher zwei einfache Lösungsmöglichkeiten. Am schnellsten und bequemsten war es, die Sicherheitsebene im “Java Control Panel” auf “Mittel” herabzusetzen. Danach funktionierten wieder alle Anwendungen. Seit dem offiziellen Umstieg auf Java 8 funktioniert diese Möglichkeit allerdings nicht mehr, da ab Java 8 Update 20 die Sicherheitsebene “Mittel” entfernt wurde.
Die einzige Alternative für eine schnelle Abhilfe ist aktuell nur der Weg über die benutzerspezifische Ausnahmeliste. Im Java Control Panel unter der Registerkarte “Sicherheit” können pro Windows-Benutzer einzelne URLs angegeben werden, die fortan nicht mehr blockiert werden sollen.
Java Ausnahmeliste via Deployment Rule Set
Abgesehen vom privaten Umfeld ist die manuelle Pflege der Java Ausnahmeliste nicht sinnvoll oder überhaupt nicht realisierbar. Für Unternehmen wurde daher eine Möglichkeit geschaffen, die Java-Sicherheitseinstellungen zentral zu verwalten und zu verteilen. Diese Methode nennt sich “Deployment Rule Set“. Bei Oracle existiert eine ausführliche Anleitung zu diesem Thema, weshalb ich nicht näher darauf eingehe. Einzig den Artikel “Creating a signed Java Deployment Rule Set with Windows Server CA” möchte ich hier noch verlinken, da dieser einige hilfreiche Tipps beinhaltet.
Ein großer Vorteil der “Deployment Rule Set”-Methode ist, dass die zentralen Verwaltung der Ausnahmeliste von einem Systemadministrator übernommen werden kann und diese Regeln durch die Benutzer nicht geändert werden können. Zugleich kann die benutzerspezifische Ausnahmeliste weiterhin von den Usern selbst gepflegt werden.
Java Ausnahmeliste via Gruppenrichtlinien verwalten
Wer die Einrichtung eines Deployment Rule Sets scheut oder die Ausnahmeliste ausschließlich zentral pflegen möchte, kann auch einen etwas einfacheren Weg gehen. In diesem Fall kann die benutzerspezifische Ausnahmeliste von Java per Gruppenrichtlinie verteilt werden.
Die benutzerspezifischen Ausnahmen werden unter Windows in der Datei “exception.sites” gespeichert, wobei eine URL pro Zeile aufgeführt wird. Die Datei ist unter folgendem Pfad aufzufinden:
%userprofile%\AppData\LocalLow\Sun\Java\Deployment\security\
Zunächst muss eine neue Datei mit dem Namen “exception.sites” erstellt werden. Selbstverständlich kann die Datei auch von einem Client-Rechner kopiert und bearbeitet werden. Nachdem die gewünschten URLs hinzugefügt wurden, muss die Datei im Netzwerk zur Verfügung gestellt werden. Am besten so, dass alle Clients darauf Zugriff haben ;-) Hier bietet sich das SYSVOL-Verzeichnis des Domain Controllers an.
Anschließend kann die “exception.sites”-Datei per Gruppenrichtlinie bzw. per GPP (Group Policy Preferences) auf die Client-Rechner verteilt werden. Das Vorgehen sollte relativ klar sein, weswegen ich nicht näher darauf eingehe.
Bei Anwendung der Gruppenrichtlinie wird die lokal vorhandene “exception.sites”-Datei mit der vom Systemadministrator erstellten und zentral verteilten Datei überschrieben. D.h. die lokal hinzugefügten URLs der User werden überschrieben und nur noch die vorgegebenen URLs sind in der Ausnahmeliste vorhanden.
Sie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen
Hallo,
Also ich habe jetzt versucht die Datei „exception.sites“ über die GPOs zu verteilen, nur ersetzt er die vorhandene Datei nicht. Ich habe unter Computerkonfiguration>Einstellungen>Windows-Einstellungen>Dateien die Quelldatei auf dem SYSVOL angegeben und als Zieldatei “%userprofile%\AppData\LocalLow\Sun\Java\Deployment\security\exception.sites” angegeben und als Aktion “Ersetzen” ausgewählt. Nun habe ich schon gpupdate und einen Neustart gemacht aber ersetzt wird die Datei nicht.
Was mach ich da falsch?
MfG
Korn
Bist du sicher, dass die GPO auch angewendet wird? Falls ja bitte mal mit der Aktion “Aktualisieren” bzw. “Update” versuchen.
Das kann deshalb nicht funktionieren, weil du im Zielpfad eine Uservariable in der Computerkonfiguration benutzt.
Statt Computerkonfiguration, die Benutzerkonfiguration in der Gruppenrichtlinie nutzen und folgenden Zielpfad verwenden:
“C:\Users\%username%\AppData\LocalLow\Sun\Java\Deployment\security\exception.sites”
Dann sollte es auch so klappen!
Ja Richtlinie wurde angewendet nur habe ich gemerkt das nur beim Default User die Einstellungen konfiguriert wurden und die anderen blieben unberührt.
Hab das jetzt so gelöst das ein System Ordner erstellt wird über eine GPO
%WINDIR%\\Sun\Java\Deployment
Darin werden drei Dateien abgelegt nach dem selben verfahren wie oben beschrieben.
1. deployment.config
(mit dem folgenden Inhalt)
deployment.system.config=file\\\C:/Windows\Sun\Java\Deployment\deployment.properties
deployment.system.config.mandatory=false
2. deployment.properties
(mit dem folgenden Inhalt)
#deployment.properties
#Wed Jul 01 14:41:04 UTC 2015
deployment.modified.timestamp=1435761664224
#Java Deployment jre’s
#Wed Jul 01 14:41:04 UTC 2015
deployment.javaws.jre.0.registered=true
deployment.javaws.jre.0.platform=1.8
deployment.javaws.jre.0.osname=Windows
deployment.javaws.jre.0.path=C\:\\Program Files\\Java\\jre8\\bin\\javaw.exe
deployment.javaws.jre.0.product=1.8.0_31
deployment.javaws.jre.0.osarch=x86
deployment.javaws.jre.0.location=http\://java.sun.com/products/autodl/j2se
deployment.javaws.jre.0.enabled=true
deployment.javaws.jre.0.args=
deployment.user.security.exception.sites=C\:\\Windows\\Sun\\Java\\Deployment\\exception.sites
3. exception.sites
mit den gewünschten URLS z.B. http://testumgebung.org/
der Slash am ende bedeutet das alle darunter liegenden Sites mit eingeschlossen sind.
Das gute ist das man die Dateien im SYSVOL einfach bearbeiten kann und nach einem GPUPDATE haben alle Clients die richtigen Ausnahmen. Gleichzeitig ist es egal ob der USER seine Persönlichen Einstellungen verändert oder nicht es werden immer nur die Dateien aus dem Systemordner geladen und der User hat ja normalerweise darauf keinen zugriff ;)
Danke nochmal für die Anleitung und den Gedankenanstoß…
MfG
Korn