java - 您的安全设置已阻止使用过期或尚未生效的证书签名的应用程序运行

标签 java security applet

Application blocked by security settings error on client' Windows8 OS

我检查了上面的问题,但它没有帮助我寻找其他解决方案。

几天前,我们的小程序代码签名证书已过期。我们更新了它,我再次创建了新的 jar 并用更新的证书签署了这个小程序,现在我得到了一个异常(exception)。

com.sun.deploy.security.BlockedException: Your security settings have blocked an application signed with an expired or not-yet-valid certificate from running
    at com.sun.deploy.security.SandboxSecurity.showBlockedDialog(Unknown Source)
    at com.sun.deploy.security.TrustDecider.askUser(Unknown Source)
    at com.sun.deploy.security.TrustDecider.validateChain(Unknown Source)
    at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.isTrustedByTrustDecider(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.getTrustedCodeSources(Unknown Source)
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.strategy(Unknown Source)
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.openClassPathElement(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$1000(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath$JarLoader.<init>(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
    at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

我从 Java 控制面板中删除了所有现有证书,然后打开我们的网站,我在该网站上获取了小程序中的新证书详细信息。最新的到期日期但是当我点击 Run 时抛出异常。

enter image description here

我再次检查了 Java 控制面板,然后显示旧证书,为什么 Java 不使用新证书?

enter image description here

最佳答案

本质上,您必须使用新的可信证书在已部署的 ear/war 中重新签署 JAR。在此之前有变通办法,您可以在这里做两件事:

  1. 转到控制面板 -> Java -> 安全 -> 编辑站点列表

添加您的申请网址,接受通配符。请注意,您可能需要关闭浏览器并重新启动才能读取新配置。

  1. 在 java 控制面板的安全选项卡中,将安全级别降低到中等,应用,确定并重新启动浏览器。它应该工作。

enter image description here

关于java - 您的安全设置已阻止使用过期或尚未生效的证书签名的应用程序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26991864/

相关文章:

java - 使用 http post 将文件上传到本地主机?

java - Spring Security 3 哈希密码编码器

asp.net - ASP.NET 诊断页面的安全性

security - Golang 删除权限 (v1.7)

JavaFX Web View : Java not accessible

java - 使用 g.drawString 显示新行

java - 运行小程序的计算机/浏览器的 IP 地址是多少?

java - 如何将可下载文件放入 HttpServletResponse?

java - 如何通过 Java Sockets 使用 IOUtils.copy 传输文件

security - 当用户可以上传自己的文件时会出现哪些安全问题?