我们的网站上有一个java applet,可以使用很长时间。然后Java 7问世,人们安装了它。当Java 7使用HTTPS访问我们网站时,applet无法加载(ClassNotFoundException)。相同的站点和相同的applet,当使用常规HTTP访问时,它工作正常。
拥有以前版本的Java(1.6.x)的人可以使用HTTP或HTTP查看applet,没有任何问题。
我们可以做些什么来为Java 7的用户解决这个问题,并希望继续使用HTTPS?
用Google搜索并没有看到任何相关结果。任何指针都将非常感激。
答案 0 :(得分:7)
问题解决了。简而言之,原因是Java 7中的JSSE(Java安全套接字扩展)实现默认情况下启用了SNI(服务器名称指示),这需要在SSL(安全套接字层)服务器上设置服务器名称。
对于Apache,我们需要执行以下操作:
<VirtualHost default:443>
# General setup for the virtual host
DocumentRoot "/opt/apache/2.2.21/htdocs"
ServerName your.servername.com:443
以前我们已将此行注释掉,它适用于所有浏览器和所有Java Applet,直到Java 7用完为止。
我在下面的Java开发者论坛上进行过相同的讨论
https://forums.oracle.com/forums/message.jspa?messageID=10330444#10330444