繁体   English   中英

Java对服务器角色中的服务器名称指示(SNI)的支持?

[英]Java support for Server Name Indication (SNI) in server role?

Java 7带来了对SNI的客户端支持 是否存在SNI服务器角色的已知开源实现? Java提供了“透明支持” TLS连接(包括握手),但是我需要解耦握手过程,以便可以基于SNI host_name扩展名发回证书。

在找不到在线文档之后,我查看了OpenJDK源代码,但是似乎没有什么地方可以在Java发送ServerHello消息之前监视ClientHello消息。

我前段时间做了一个快速hack: https : //bitbucket.org/zmarcos/sniserversocket

如果您按照说明进行操作: https : //bitbucket.org/zmarcos/sniserversocket/wiki/Home

它甚至可以在Java EE服务器(例如Glassfish)上运行。

我不知道Java 7的已知开源实现,但是Java 8中将提供对服务器SNI的支持。 如果您将此移植回Java 7,我很想知道。

我本人也遇到了同样的问题,最后写了一个开源库TLS Channel 该库的范围其实更大:它是SSLEngine的一个完整的抽象(这是认真刻苦直接使用),露出它作为了ByteChannel。

关于SNI,该库在创建SSLEngine之前先解析第一个字节。 然后,用户可以向服务器通道提供功能,以根据接收的域名选择SSLContexts。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM