Java Ausnahmeliste via Gruppenrichtlinien verwalten

Java Logo

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.

Java-Anwendung blockiert

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 8 Ausnahmeliste

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.

Java 8 Ausnahmeliste

Tobi

Hallo, mein Name ist Tobias und ich habe diesen Blog im April 2009 ins Leben gerufen. Seitdem blogge ich hier über Software, Internet, Windows und andere Themen, die mich interessieren. SSDblog ist mein zweiter Blog, indem es rund um das Thema SSDs geht. Ich würde mich freuen, wenn ihr meinen Feed abonniert oder mir auf Twitter, Facebook, Google+ und Google+ (privat) folgt.

5 Antworten

  1. Korn sagt:

    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

    • Tobi sagt:

      Bist du sicher, dass die GPO auch angewendet wird? Falls ja bitte mal mit der Aktion „Aktualisieren“ bzw. „Update“ versuchen.

    • Björn sagt:

      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!

  2. Korn sagt:

    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

  1. 9. Dezember 2015

    […] Java Ausnahmeliste via Gruppenrichtlinien verwalten – Link […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.