java插件缓存和动态IP主机

时间:2009-11-09 16:12:50

标签: java caching plugins cdn

我正在尝试使用Amazon S3和Amazon Cloudfront CDN来提供applet应用程序的jar文件。

我看到java插件的几个缓存未命中我的jar。这对我来说是一个阻碍,因为我的应用程序大小约为3Mb,我不能让我的客户每次都重新下载应用程序。

问题在于,由于“security vulnerability issue”java插件缓存正在解析jar远程主机的IP地址,但Amazon S3使用动态IP。我想Akamai或其他任何体面的CDN服务都会出现同样的问题。

我能做些什么吗?

1 个答案:

答案 0 :(得分:0)

地址必须在某个时候解决,这不是问题所在。

问题是applet想要确保.jars来自与持有applet的页面相同的源,以确保没有人返回恶意jar而不是原始。但是当使用URL打开套接字时,它会解析为不同的地址,是的,因为您使用的是云而不是单个服务器。

我相信你可以通过签署.jars来解决它。这样,无论来源如何,applet都知道它们是原件。

我所做的是手动创建证书。像你一样:

keytool  -genkey -keyalg rsa -keysize 1024 -alias {put a name for the cert here} -validity 3650 -keystore {.. and a file name here.}

请注意,这将提示您设置证书的用户和密码。

然后像这样签下你的所有罐子 - >

$1/jarsigner  -keystore { the above file name} -storepass password  -keypass password     whatEver.jar         {cert name, from above.}

我在这种方法中遇到的唯一问题是,由于证书未经浏览器中的认可机构签名,因此它将首次将其添加到受信任的证书中。通常不是问题。

其他明智的你可以:

1)从浏览器中的公认权威机构(Thwate,Verisign)获取证书(有些会免费提供)

2)设置权限并要求您的用户将其添加到浏览器的公认权限中。

希望这有帮助!

-Alex