2013-02-26 7 views
5

Java 7 bringt client support for SNI. Gibt es bekannte Open-Source-Implementierungen der SNI-Serverrolle? Java bietet TLS-Verbindungen "Transparent-Unterstützung" (einschließlich Handshake), aber ich muss den Handshake-Prozess entkoppeln, damit ich ein Zertifikat basierend auf der SNI-Erweiterung host_name zurücksenden kann.Java-Unterstützung für Server Name Indication (SNI) in der Serverrolle?

Nachdem ich keine Online-Dokumentation gefunden habe, habe ich in den OpenJDK-Quellcode geschaut, aber es scheint keinen Punkt zu geben, an dem ich die ClientHello-Nachricht überwachen kann, bevor Java die ServerHello-Nachricht sendet.

Antwort

1

Ich kenne keine bekannte Open-Source-Implementierung für Java 7, aber Server-SNI-Unterstützung ist coming in Java 8. Wenn Sie das auf Java 7 zurück portieren, würde ich es gerne wissen.

0

Ich stieß selbst auf das gleiche Problem und schrieb eine Open-Source-Bibliothek: TLS Channel. Der Umfang der Bibliothek ist tatsächlich größer: Es ist eine vollständige Abstraktion für SSLEngine (die ist schwer schwer direkt zu verwenden), die es als ByteChannel aussetzt.

In Bezug auf SNI führt die Bibliothek die Analyse der ersten Bytes durch, bevor die SSLE-Engine erstellt wird. Der Benutzer kann dann dem Server-Kanal eine Funktion zuführen, um abhängig von dem empfangenen Domain-Namen SSLContexte auszuwählen.