Server Name Indication (SNI) auf Java

10

Kann mir jemand helfen, HTTP-Verbindungen mit Servernamen in Java zu starten?

Ich versuche, Inhalte von einer Website anzufordern, die ich administriere. Ich habe die Apache-HttpClient-Bibliothek verwendet, aber meine Anfrage für sicheren Inhalt schlägt fehl, da die Website nur SNI für HTTPS verwendet und SNI nicht im DefaultHttpClient aktiviert ist. Ich habe nach einer Anleitung gesucht, wie ich das in der HttpClient-Bibliothek von Apache angehen kann, aber ich sehe am Ende dieses Dokuments: Ссылка , was veraltet ist (Verweis auf den Code zurück, als HttpClient und HttpCore Teil des Apaches Commons-Pakets waren).

Also ... irgendeine Hilfe?

    
JellicleCat 11.09.2012, 00:11
quelle

5 Antworten

11

Vielleicht möchten Sie Ссылка

nachverfolgen

Die zugrunde liegende Client-Implementierung von Java 7 ist in der Lage, sie zu unterstützen und stellt das Feature über SSLSocketImpl # setHost (von sun.net.www.protocol.https.HttpsClient

aufgerufen) zur Verfügung

auf Java 7 verwenden

%Vor%

bis HTTPCLIENT-1119 behoben ist

    
cmbntr 25.10.2012, 02:20
quelle
4

So habe ich es in org.apache.httpcomponents httpclient v4.3 +

gemacht %Vor%

Und so habe ich HttpClient

erstellt %Vor%     
shreyas 21.08.2014 15:01
quelle
1

mit einem kurzen Fix wie unter: TLS mit SNI in Java-Clients Es ist möglich, SNI Server Support zu JDK 7 hinzuzufügen und es zusammen mit X509ExtendedKeyManager zu verwenden.

    
SkateScout 27.12.2012 10:10
quelle
1

Was für mich funktionierte, war die korrekte Konfiguration von ServerName in der Apache-Konfiguration:

/etc/apache2/sites-avaible/default

%Vor%

Wie gesagt in Ссылка .

    
Giovanni Silva 19.02.2013 18:23
quelle
0

Es scheint, dass dieses Problem in Java 7 .

    
a.drew.b 11.09.2012 00:23
quelle

Tags und Links