AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 578026
Accepted
Wes Sayeed
Wes Sayeed
Asked: 2014-02-25 14:05:44 +0800 CST2014-02-25 14:05:44 +0800 CST 2014-02-25 14:05:44 +0800 CST

Java 部署规则集.xml 不工作

  • 772

最近对考勤卡系统的升级迫使我们将所有工作站升级到 Java 7u51(我们使用的是 6u45)。我们有另一个基于 Java 的应用程序,它对我们的业务至关重要,现在不断发出安全警告。每个用户每天必须至少点击“运行”十次(供应商的代码未签名,没有发布者信息)。这是无法接受的

据我所知,解决此问题的唯一方法是使用部署规则集。我在谷歌上搜索了大量解释如何做到这一点的文章。它们都有点不同,它们都不起作用。我创建了 XML 文件,Jar'ed,使用自签名证书对其进行签名,然后将该证书导入到几台测试机器上的受信任 CA 中。无论我做什么,在我访问的每个启用 Java 的站点(包括我特别列入白名单的站点)上都会看到以下错误:

“应用程序被部署规则集阻止”
无法验证自签名部署规则集 jar。

我对甲骨文近年来对 Java 的错误处理感到非常愤怒。我已经在这次部署中投入了 200 多个小时,因为我被一个接一个的障碍所束缚。用户沮丧地打电话给服务台,不断的安全警告正在花费组织的时间和金钱。

无论如何,足够的咆哮。如果有人能告诉我我做错了什么,将不胜感激。

以下是我采取的具体步骤:
1) 下载并安装了 JDK 7u51(keytool.exe 和 jarsigner.exe 需要)

2) 创建以下规则集.xml 文件:

<ruleset version="1.0+">
    <rule>
        <id location="*.ourdomain.com" />
        <action permission="run" />
    </rule>

    <rule>
        <id />
            <action permission="default" />
    </rule>
</ruleset>

3) 使用以下命令打包 XML 文件:

jar.exe -cvf DeploymentRuleSet.jar ruleset.xml

4) 使用 keytool.exe 命令创建了一个 50 年、2048 位 RSA 自签名证书,如下所示:(我让它提示输入 DN 信息;证书密码与密钥库密码相同)

keytool.exe -genkey -alias SelfSigned -keystore "SelfSigned.jks" -keyalg RSA -keysize 2048 -startdate "2000/01/01 00:00:00" -validity 18262

5)导出我刚刚使用以下命令制作的证书:

keytool.exe -export -file "SelfSigned.cer" -alias SelfSigned -keystore "SelfSigned.jks"

6) 使用以下命令对我在步骤 3 中创建的 JAR 文件进行签名:

jarsigner.exe -keystore "SelfSigned.jks" -signedjar "DeploymentRuleSet.jar" DeploymentRuleSet.jar SelfSigned

7) 创建 C:\Windows\Sun\Java\Deployment 文件夹并将 DeploymentRuleSet.jar 文件复制到其中。我通过 Java 控制面板验证正在应用规则集并且证书有效。

8) 导入了我在步骤 5 中导出的证书。这是我偏离说明的地方。我无法使用 keytool.exe 导入证书。该页面提示用户trusted.certs store 没有密码,系统cacerts 密码为“changeit”。两者都不起作用,所以我使用 Java 控制面板的 GUI 将其导入到用户的受信任证书存储中。

java
  • 1 1 个回答
  • 6884 Views

1 个回答

  • Voted
  1. Best Answer
    Larry
    2014-03-15T09:37:54+08:002014-03-15T09:37:54+08:00

    如果在 Windows 上:我没有将证书导入到 Java 控制面板小程序中的用户受信任证书存储中。我将它导入到 Windows 证书.mmc 计算机帐户并将其存储在受信任的根证书颁发机构下。我们正在使用 to 政策来做到这一点。

    • 1

相关问题

  • jvm性能调优技巧/资源?

  • Linux 服务器上的多个*几乎*相同的进程

  • 您认为 Linux 服务器上的 Java 是个问题吗?[关闭]

  • 如何定期复制 SVN 存储库而不会丢失目标标签和分支?

  • GlassFish 更改 Web 服务的端口

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve