[英]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.