4 Stimmen

Wie unterdrückt man die Aufforderung zur Eingabe des Keystore-Passworts bei der Verwendung von Java Webstart mit Client-Authentifizierung?

Gibt es eine Möglichkeit, die Passwortabfrage zu unterdrücken, wenn Java Webstart mit einem https-Server verwendet wird, der Client-Authentifizierung einsetzt? Ich würde dies gerne tun, weil die webgestartete Anwendung auf einem Touchscreen-Gerät läuft, das keine Tastatur hat und in einem Kiosk-Modus läuft. Daher würde es ausreichen, das Passwort entweder aus dem Keystore zu entfernen oder es irgendwo zu speichern, vielleicht in der Desktop-Verknüpfung, die die App startet.

Ich habe bereits versucht, einen JVM-Parameter an die Verknüpfung anzuhängen, aber es funktioniert nicht:

javaws -J-Djavax.net.ssl.keyStorePassword=mypass https://...

Ich habe auch herausgefunden, dass ich, wenn ich in der Java-Systemsteuerung die Option "Browser-Keystore verwenden" aktiviere und das Zertifikat hinzufüge, die Kennwortabfrage abstellen und trotzdem eine erfolgreiche Verbindung herstellen kann. Es scheint, dass nur der Java-Keystore nach einem Passwort fragt und der des Internet-Explorers nicht.

1voto

David Nouls Punkte 1875

Sie versuchen, eine benutzerdefinierte KeystoreProvider-Implementierung zu verwenden. Es ist nicht schwer, einen solchen zu erstellen, und ich gehe davon aus, dass Sie die Notwendigkeit des Passworts außer Kraft setzen können. Sie müssen die security.properties der JRE anpassen, die zum Starten der Webstart-Anwendung verwendet wird.

Obwohl in Ihrem Fall ... gibt es einen Grund, warum Sie nicht den Browser-Keystore verwenden möchten? In diesem Fall haben Sie kein Problem.

David

0voto

Fred Simon Punkte 557

Ich denke, das Problem liegt bei der Zertifizierungsstelle (CA)! Wenn Ihre Webstart-App mit einem Zertifikat signiert ist, das von einer CA genehmigt wurde, die bereits Teil der JVM-Liste der CAs ist (Verisign, Thawte, ...), ist kein Passwort erforderlich, um den App-Schlüssel zum lokalen Keystore hinzuzufügen.
Wenn Sie möchten, können Sie also Ihre eigene Zertifizierungsstelle manuell im Java-Standard-Schlüsselspeicher speichern (dazu ist einmalig ein Kennwort erforderlich) und dann Ihre Gläser mit einem von dieser privaten Zertifizierungsstelle ausgestellten Zertifikat signieren.
Ich weiß nicht, welche JVM Sie auf Ihrem Gerät verwenden (ich hatte Probleme mit dem IBM JDK, das den obigen Trick ausführt), aber es sollte funktionieren!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X