Java 7中的Java服务器名支持

Java 7中的Java服务器名支持,java,ssl,sni,Java,Ssl,Sni,根据,Java 1.7应该支持SNIServerName,但是根据,在他们的javax.net.ssl包中没有这样的类。有人能澄清一下吗?我是否必须使用Java 8 API才能使用SNIServerName类?有支持,请参阅: JSSE客户端的服务器名称指示(SNI):JavaSE7版本 支持JSSE中的服务器名称指示(SNI)扩展 客户SNI在RFC 4366中有描述。这使TLS客户端能够 连接到虚拟服务器 但是,它是以不同的方式实现的。例如,我们讨论了这个问题。相关的引用可能是 Java8提

根据,Java 1.7应该支持SNIServerName,但是根据,在他们的javax.net.ssl包中没有这样的类。有人能澄清一下吗?我是否必须使用Java 8 API才能使用SNIServerName类?

有支持,请参阅:

JSSE客户端的服务器名称指示(SNI):JavaSE7版本 支持JSSE中的服务器名称指示(SNI)扩展 客户SNI在RFC 4366中有描述。这使TLS客户端能够 连接到虚拟服务器

但是,它是以不同的方式实现的。例如,我们讨论了这个问题。相关的引用可能是

Java8提供了一个完全不同的SNIAPI javax.net.ssl包

所以,是的,您将不会使用Java7创建该类,并且您将“必须使用Java8API来使用SNIServerName类”,正如您所要求的


有关如何在Java 7中使用SNI的讨论,请参阅。

谢谢,这很有帮助。我需要在运行时为启用/禁用SNI。由于设置SNI参数的选项在Java 7中不直接可用,因此我将跳过SSLSocketFactory的createSocket()方法名,其中主机名为空以禁用SNI。