SSL-Zertifikat in Java-Webanwendungen laden

Status
Nicht offen für weitere Antworten.

andi1337

Mitglied
Hallo,

ich bin totaler Neuling im Gebiet der Java-Webanwendungen und finde wahrscheinlich deshalb keine Lösung für mein Problem. Ich hoffe, dass mir hier jemand helfen kann.
Mein Problem ist folgendes:

Ich möchte eine Java-Webanwendung schreiben, die mir Informationen eines bereits im Browser importierten Zertifikats ausgibt, wie z.B. den publicKey, SubjetAlternativeName, usw. Das ganze existiert bereits in php, jedoch benötige ich es in Java.

Hier kann man sich das ganze einmal in php anschauen, da ja ein praktisches Beispiel immer besser ist, als wenn ich es hier mit Text beschreibe.
Also zuerst ein Zertifikat erstellen und runterladen ->Simple Create Client Certificate Page
Dann das soeben runtergeladene Zertifikat in den Browser importieren.
Und am Ende einloggen, wobei hier ein Dialog erscheint, wo man eines der importierten Zertifikate auswählen kann. Hier werden dann Informationen zu dem ausgewählten Zertifikat angezeigt. -> Login Test Page
Leider ist das Ganze in php gemacht.

Um es nochmal deutlicher zu machen: Meine Frage bezieht sich eigentlich nur auf den letzten Teil, es geht mir nicht darum, ein Zertifikat zu erstellen. Theoretisch möchte ich also einfach eine Java-Webanwendung, wo ich ein bereits im Browser importiertes Zertifikat zu Beginn auswählen kann und anschließend Informationen auslesen kann. Ist das ganze überhaupt möglich? Dabei ist mir egal, was benutzt werden soll, ob JSP, JSF, Struts oder etwa Apache Wicket ;-)

Viele Grüße und schonmal danke für die Hilfe,

Andi
 

gex

Bekanntes Mitglied
Hi, wenn ich dich richtig verstehe willst du den Login mittels client certificate erreichen oder?

Nun bei Java Webapps sollte dafür HTTPS Client Authentication als Authentication Mechanism verwendent werden.
Siehe Defining Security Requirements for Web Applications - The Java EE 5 Tutorial

Details sind dann jedoch vom eingesetzen Application Server abhängig. Bei JavaSE Anwendungen würde dies anderns aussehen (vermutlich auf Socket Level), aber dies ist im JavaEE Umfeld nicht den zu beschreitende Weg ;)

Gruss
 

andi1337

Mitglied
Hallo,

vielen Dank schonmal für die Antwort. Ja, am Ende soll es sowas wie ein Login mittels Client Zertifikat sein.
Ich bin mir nicht sicher, ob die HTTPS Client Authentication genau das ist, was ich suche. Also wie gesagt, ich möchte einfach zu Beginn eins von den importierten Zertifikaten auswählen können und dann Information davon ausgeben lassen, wie z.B. den OrganisationName, publicKey, SubjectAlternativeName, usw. Also mein Java-Code sollte einfach eine HTML-Seite erzeugen, wo mir diese Infos angezeigt werden.
Hat irgendwer schonmal etwas ähnliches implementiert?

Viele Grüße,
Andi
 

andi1337

Mitglied
Hallo mal wieder,

habe das Problem gelöst. Falls jemand auch mal dieses Problem haben sollte, hier der Lösungsweg:
Konfigurationsdatei für SSL konfigurieren. Der entsprechende Eintrag für den Connector in der server.xml sieht folgendermaßen aus:
[XML]
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="..." keystorePass="..."
truststoreFile=".." truststorePass="..."
SLImplementation="org.jsslutils.extra.apachetomcat6.JSSLutilsImplementation"
acceptAnyCert="true" clientAuth="want" sslProtocol="TLS" />
[/XML]
Hier ist zu bemerken, dass ich noch eine zusätzliche Bibliothek in den Lib-Ordnder des Tomcats kopiert habe (JSSLutilsImplementation), damit jedes Client-Zertifikat vom Tomcat akzeptiert wird. Die keystore- und truststore-Parameter dürften eigentlich überflüssig sein, wurde aber noch nicht getestet.
Im Servlet meiner Java-Webapplikation wurde folgender Eintrag noch hinzugefügt:
[XML]
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
[/XML]
Die folgende JSP-Datei liest dann das entsprechende Zertifikat aus:
Java:
<%
            X509Certificate[] certs = (X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");
            if (certs != null) {

            X509Certificate cert = certs[0];
%>
Obwohl das wahrscheinlich der übliche Weg ist, der mir leider nicht geläufig war, hoffe ich, dass es vielleicht noch anderen weiterhilft ;-)

Viele Grüße,
Andi
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
LimDul Komplexe Generierung von Java-Klassen aus WSDL Web Tier 1
E Java Servlet doPost request, Mehrere Parameter mit demselben Namen aus Tabellenzeilen Web Tier 2
platofan23 Java Login Überprüfung ohne Srciptlets in der JSP Web Tier 4
Dimax JSP Progress Bar in JSP nur mit Java Web Tier 4
S Einträge aus Datenbank einzeln darstellen (JSP, JAVA, HTML) Web Tier 9
R JavaScript für Java Enterprise Entwickler Web Tier 1
O JSF Java Unsigned Applet PrivilegedActionException Problem Web Tier 2
S JSP Hm... Vorlage für Java Basierende Webseite? Web Tier 0
S Button klick soll Java methode aufrufen Web Tier 2
R Tomcat - java.lang.OutOfMemoryError: PermGen space Web Tier 0
F JSP jSP Datei mit normalem Java Programm auslesen? Web Tier 5
T Spark Java Web Framework Web Tier 0
G Probleme mit Java + Tomcat | Cannot switch on a value of type String for source level below 1.7 Web Tier 8
S java.lang.ExceptionInInitializerError: Wieso??? Web Tier 3
N JSP Free Webhoster Java Backend? PHP? Web Tier 1
D Java EE Servlet login Problem Web Tier 1
L Servlet Java Entschlüsselungsprogramm in Webapplikation einbinden Web Tier 0
Streeber java.lang.NoClassDefFoundError: org/sqlite/NativeDB Web Tier 0
M GWT - Externe Java Libs auf Server Seite - zB. JDBC Web Tier 6
S Java Bean und Java Servlet Web Tier 2
L java.io.NotSerializableException für domain Objekte - Design Problem? Web Tier 12
H MVC in Java pur / Controller als Instanz? / Theorie! Web Tier 4
T Einsteigerfragen zu Servlets/Webprogrammierung mit Java Web Tier 11
J Übergabe von Parameter aus JSP an Java Web Tier 2
nrg Java-Code in Taglib wird nicht richtig ausgeführt. Web Tier 7
D JSF Überprüfen der Session ID in JSF und JAVA Web Tier 9
H JSP, Eclipse, Tomcat - Java Klasse wird nicht gefunden Web Tier 8
B JSF Mojarra 2.1.5: java.lang.IllegalStateException: Cannot create a session after the response has been Web Tier 7
A Parameterübergabe an Servlet und Aufruf von Servlets per Java Code Web Tier 7
J JSF Java Beans Konventionen Web Tier 2
P Blog in Java/JSP Web Tier 5
S Per JavaScript Java ansteuern - Welche Technik? Web Tier 2
T Seam-Komponenten oder Java Bean soll direkt nach Appserver-Start "leben" Web Tier 4
B Thread start bei Java Web Anwendung Web Tier 6
M Suche Java Framework Web Tier 2
B Tomcat 6 ergibt Fehler - java.net.SocketException Web Tier 2
G Probleme mit EclipseLink und Java.util.Date Web Tier 3
ruutaiokwu js kalendar, der mit java.text.SimpleDateFormat kombatibel ist... Web Tier 4
B Java EE 6 Problem (EL) Web Tier 4
F Migration eines CMS von PHP nach JAVA Web Tier 3
R GWT 2.1.1 mit Java 1.6 statt 1.5 Web Tier 8
W JSP - Attribut-Werte aus JAVA-Klasse ? Web Tier 8
T Werte aus java Klasse in jsp nutzen Web Tier 5
N java.lang.NoClassDefFoundError: org/jdom/JDOMException Web Tier 3
M JSP Ausgabe von Java-Objekten Web Tier 7
D JSP, Java Applets einbinden Web Tier 2
LadyMilka java.lang.NumberFormatException: For input string: ... Web Tier 5
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
K Bilder in Java-Webapplikationen Web Tier 12
S Java Servlet Content Type Web Tier 3
K Analye einer Seite (Java, JSP, ...) Web Tier 12
J rich:modalpanel vom java-code aus öffnen und schliessen Web Tier 2
S Expression Language in Java Web Tier 13
A Ssh connection mit java jsch? Web Tier 2
W Java code aus JSP-File durch JSTL code ersetzen Web Tier 8
M Body onUnload Java Methode aufrufen Web Tier 13
F Frage zu Java Beans Web Tier 17
M Java Framework für größere Projekte verwenden Web Tier 5
U access denied bei Datei Schreiben mit Java unter Linux trotz gesetzter Rechte Web Tier 2
P Java-Program -> Web Programm Web Tier 6
F Java Applets in html einbinden Web Tier 10
ruutaiokwu Wert hinter JSP-Tag nach Java-String in Skriptlet Web Tier 4
N java bean in eclipse Web Tier 6
S Java Code in JSF Web Tier 10
N Servlet und java.lang.NoClassDefFoundError Web Tier 4
D request.contextPath in Java-Klasse ausführen Web Tier 5
T In einem Struts Tag Werte mit Java einfügen Web Tier 2
G [JAVA / JSP] ArrayList in JSTL foreach verarbeiten Web Tier 4
G CSV-Anbindung an Java Web Tier 2
G Java Server Face Performancelastig? Web Tier 2
H Java Servlet und HTML Form Web Tier 3
U Java Application auf Tomcat Web Tier 5
G Validierung mit Java Server Faces Web Tier 4

Ähnliche Java Themen

Neue Themen


Oben