如何使计算机信任自签名Java应用程序

Ben*_*fez 36 java security certificate self-signed java-web-start

我正在使用JAWS部署一个应用程序,它一直工作到2013年底我收到警告,然后今天早上Java完全阻止了它.法语信息是:

应用程序bloquéeparlesparamètresdesécuritéVosparamètresdesécuritéontbloquél'exécutiond'uneapplication
auto-signéeavecune version obsoleteouarrivéeàexpirationde Java.

这将大致翻译为:

封锁的安全设置,应用程序
与陈旧或过时的Java您的安全设置已运行已申请阻止自签名.

语法不是很清楚,句子的结尾可以读作:

  • ...阻止自签名应用程序与过时或过时的Java [运行时]一起运行,这意味着本地运行时太旧,但自签名很好
  • ...阻止了使用过时的或过时的Java [编译器]自签名的应用程序,这意味着使用的Java编译器太旧了

我在网上搜索了完全相同的英文信息,但我找不到它.所以语法还不清楚.请注意,在消息上没有Name: xyz / From: http://url/,只有我上面输入的文本和蓝色的"i"图标.

现在,我并不真正理解这个错误消息的确切含义,但我知道存在一个问题,因为我的JAR文件都是自签名的.我已经在其他Windows客户端遇到过这种情况,这很简单:

  • .cer从我的密钥库中提取了证书;
  • 将其下载到客户端计算机上,打开它;
  • 让客户在本地计算机上将其作为可靠来源安装.

它在我的测试设置和一个客户上起了很大的作用,但另一个客户仍有问题,无法运行我的软件.

这对我来说是个大问题,我不知道该怎么做.我应该升级我的Java编译器,重新编译所有内容,再次签署每个JAR文件并交叉手指吗?如何让Windows框信任我的证书并让Java应用程序运行?

小智 59

刚转到*Startmenu >> Java >> 配置Java >> 安全 >> 编辑站点列表 >> 复制并粘贴你的链接有问题 >> OK 问题已修复:)*

  • 仅在某些Java版本上可接受.我知道Java 1.7_45没有白名单选项. (5认同)
  • 还必须包括非标准端口.例如,内部Proxmox服务器将使用以"https://hostname.example.com:8006/foo"开头的URL.如果您只允许"https:// hostname.example.com",则自签名证书检查将失败.您必须包含完整的`https://hostname.example.com:8006`才能正常工作. (4认同)
  • 如果通过Java Web Start(JNLP文件)启动,请使用文本编辑器打开文件,找到<jnlp>标记并使用"codebase"属性中的URL添加到白名单.它应该在那之后发布. (2认同)

Ben*_*fez 9

严重免责声明

该解决方案存在严重的安全漏洞.请您自己承担风险使用.
看看这篇文章的评论,看看这个问题的所有答案.


好的,我不得不去客户所在地找到解决方案.一世:

  • 导出包含PKCS#12格式的签名密钥的密钥库
  • 打开控制面板Java - > Security选项卡
  • 单击" 管理证书"
  • 将此新密钥库导入为安全站点CA.

然后我没有任何警告就打开了JAWS应用程序.这有点麻烦,但比购买签名证书便宜得多!

  • 将证书添加为CA并不完全安全......然后,他们可以使用该证书为任何域签署证书. (6认同)
  • 为steveayre的评论+1.这并不是一个非常好的主意,而且正如心理学家指出的那样,在大多数情况下并不实用.您应该严格考虑取消接受您的答案并接受Mehdi的答案.然后删除你的答案或只是编辑它,并说人们应该遵循Mehdi的建议. (2认同)