2012-03-26 9 views
0

Ich würde gerne ein PKI-Zertifikat schnappen, wenn eine Anfrage in Jersey/Frühling passiert. Ich habe versucht zu tun:Wie man ein pki Zertifikat mit Jersey/Frühling ergreift?

@GET 
@Path("/testCert") 
@Produces("text/plain") 
public String testCert(@Context HttpServletRequest request) 
{ 
    X509Certificate[] certs = (X509Certificate[]) request 
     .getAttribute("javax.servlet.request.X509Certificate"); 
    return "Running... \n"; 
} 

Aber das ist nicht mein cert aus dem Browser packen, und ich weiß nicht, was anderes zu versuchen.

Antwort

3

Der Browser sendet das Clientzertifikat nur dann, wenn es vom Server angefordert wird. In der Regel müssen Sie die Standardserverkonfiguration ändern, um ein Clientzertifikat anzufordern. In Tomcat müssen Sie beispielsweise das Attribut clientAuth=true zu dem Connector-Element hinzufügen, das Ihren HTTPS-Listener definiert. Sie können auch clientAuth=want * verwenden, um ein Clientzertifikat anzufordern, aber dennoch eine nicht authentifizierte Verbindung zuzulassen.

Wenn Ihr Server so eingerichtet ist, dass er ein Clientzertifikat anfordert und es immer noch nicht gesendet wird, müssen Sie möglicherweise den Browser und/oder Server so einrichten, dass das Zertifikat des anderen vertrauenswürdig ist. Dies ist besonders relevant, wenn Sie selbstsignierte Zertifikate verwenden. Dies funktioniert definitiv nicht, ohne das Clientzertifikat in den Vertrauensspeicher des Browsers zu importieren.

Die Tomcat SSL How-to ist ein guter Ausgangspunkt für zusätzliche Informationen, von denen einige nicht für Tomcat spezifisch ist; Wenn Sie einen anderen Server verwenden, müssen Sie natürlich die Dokumentation nach Konfigurationsoptionen durchsuchen.

Wenn alles andere fehlschlägt, können Sie -Djavax.net.debug=ssl in der Befehlszeile übergeben, um einen Einblick in die Vorgänge auf der SSL-Ebene zu erhalten.

* Ältere Tomcat-Versionen verwenden optional, um dieses Verhalten aufzurufen. Konsultieren Sie die Dokumentation für Ihre spezifische Tomcat-Version, um die richtige Eigenschaft zu ermitteln.

+0

Ich führe meinen Tomcat-Server aus der Eclipse, wie kann ich das Attribut dort hinzufügen? – Grammin

+0

Wenn ich Eclipse 3.6 mit WTP verwende, sehe ich keine Option, um es über die Benutzeroberfläche zu setzen, so dass Sie die Datei server.xml manuell ändern müssen. Dies kann durch das Erweitern des Ordnersymbols für Ihren Server im Projekt "Server" im Paket-Explorer erfolgen. – Alex

Verwandte Themen