如果我创建了一个签名的Java小程序,我可以在我想要的任何域上托管它吗?

如果我创建了一个签名的Java小程序,我可以在我想要的任何域上托管它吗?,java,applet,code-signing,ca,Java,Applet,Code Signing,Ca,或者,已签名的小程序是否仅在从特定域(即作为CA身份验证的一部分使用的域)下载时才与之关联并被视为已签名 我的情况:我创建了一个applet,我提供它作为工具下载,以便其他人可以在他们的网站上使用它。人们不会在我的网站上使用小程序,而是将其作为zip下载并放在自己的网站上。(很明显,我的应用程序是针对开发者和那些精通HTML的人的)。到目前为止,小程序还没有签名,但是由于Oracle在上次更新时基本上已经删除了未签名的小程序,我正在考虑对其进行签名。但是,我不想经历签名的麻烦和费用,却发现只有当

或者,已签名的小程序是否仅在从特定域(即作为CA身份验证的一部分使用的域)下载时才与之关联并被视为已签名

我的情况:我创建了一个applet,我提供它作为工具下载,以便其他人可以在他们的网站上使用它。人们不会在我的网站上使用小程序,而是将其作为zip下载并放在自己的网站上。(很明显,我的应用程序是针对开发者和那些精通HTML的人的)。到目前为止,小程序还没有签名,但是由于Oracle在上次更新时基本上已经删除了未签名的小程序,我正在考虑对其进行签名。但是,我不想经历签名的麻烦和费用,却发现只有当小程序在我的网站上使用而不是在其他网站上使用时,签名才有效


编辑澄清:我不打算自我签名。我打算使用CA。

是。如果它是自签名的,您可能会收到警告。如果由受信任的机构签署,则不会发出警告。

答案实际上是一个限定的“是”

警告我们,在最近的安全更新中,如果Jar清单中缺少
Codebase
属性,则引入了一个更改以生成警告

详情如下:

Codebase属性用于将JAR文件的代码库限制为特定的域。使用此属性可防止有人出于恶意目的在其他网站上重新部署您的应用程序

注意:如果Codebase属性未指定安全服务器(如HTTPS),则存在一些风险,即您的代码可能会重新用于中间人(MITM)攻击方案

将此属性设置为应用程序JAR文件所在的域名或IP地址。还可以包括端口号。对于多个位置,请用空格分隔这些值。星号(*)只能用作域名开头的通配符。下表显示了示例值及其匹配内容

因此,我猜想您可以添加
Codebase
属性来抑制客户端的警告,但前提是客户端将小程序部署在其站点上的特定位置

我不确定客户端是否可以直接“热链接”到您站点上的小程序。考虑到我不是一名安全专家,我几乎认为有某种神秘的方式可以被滥用



鉴于最近的安全性收紧,如果Oracle决定在应用程序之前指定HTTPS服务器,我也不会感到惊讶。将在不将插件的安全性降低到危险级别的情况下启动,并且只能跨站点使用扩展(而不是主应用程序。/applet)。

如果答案对您有帮助,您可以接受。第二句话不正确。在最近的JRE中,默认安全级别为自签名应用程序。完全被阻止了。@AndrewThompson谢谢,澄清了这一点+1.编辑:添加链接到安全级别。伟大的链接!我以前没有看过这个流程图。有了这些,我可以很高兴地+1答案当客户端升级到Java7更新51或更高版本时,我在使用自签名证书时也遇到了问题。具有自签名证书的小程序被阻止。但是,您可以将url添加到Java控制台中的异常列表中,并使小程序再次运行。