gpt4 book ai didi

java - Jenkins Slave 使用JNLP 需要安全提示

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:23:35 27 4
gpt4 key购买 nike

我们使用 Jenkins 在不同的虚拟机中驱动自动化 GUI 测试。操作系统是 Win7/64 和其他 Windows 变体。虚拟机使用 JNLP 方式连接到 Jenkins Master。无法切换到其他连接,因为作业必须使用 GUI 执行程序。

由于安全要求的提高,Java 现在发出一个对话框来确认 Jenkins Remoting Agent 的执行。这显然会破坏测试的自动执行。此对话框每 24 小时显示一次。将这段时间增加到一年也可以解决我们的问题。

提供的细节提到了不同的方面,比如应用程序的关联文件(JNLP)没有数字签名

enter image description here

我们尝试了不同的 Java 版本(7u67、Java 8u11 和 8u20)和不同的安全设置。

Jenkins 是最新的稳定版 1.565.1(尝试更新和新安装的版本)。在全新安装中也尝试了最新的 Jenkins 1.576。

这个问题是可以在我们这边解决还是只能在 Jenkins 那边解决?有解决这个问题的想法吗?

最佳答案

这个问题的解决方案是使用 Deployment Rule Set .主要困难是在正确的位置创建和存储证书。

这是解决上述问题的分步指南

  1. 安装 Java SDK (v7)

  2. 生成自签名 CA,有效期 50 年:

    "C:\Program Files\Java\jre7\bin\keytool.exe" -genkeypair -alias selfsigned -keyalg RSA -keypass changeit -keystore identity.jks -storepass changeit -startdate "2000/01/01 00:00:00" -validity 18262 -keysize 2048
  3. 要从 keystore 中提取证书,请使用此命令:

    "C:\Program Files\Java\jre7\bin\keytool.exe" -exportcert -alias selfsigned -file Our_CA.cer -keystore identity.jks -storepass changeit
  4. 将 ruleset.xml 创建为 ANSI 文件(例如使用 Notepad++):


    <ruleset version="1.0+">
    <rule>
    <id location="http://url.to.web.server" />
    <action permission="run" />
    </rule>
    <rule>
    <id />
    <!-- The last rule is the default policy and the id should be blank. -->
    <action permission="default" />
    </rule>
    </ruleset>

  5. 将 ruleset.xml 转换为 jar 文件:

    "C:\Program Files\Java\jdk1.7.0_67\bin\jar.exe" -cvf DeploymentRuleSet.jar ruleset.xml
  6. 签署 jar DeploymentRuleSet.jar

    "C:\Program Files\Java\jdk1.7.0_67\bin\jarsigner.exe" -keystore "identity.jks" -signedjar "DeploymentRuleSet.jar" DeploymentRuleSet.jar selfsigned

    verify jar:
    "C:\Program Files\Java\jdk1.7.0_67\bin\jarsigner.exe" -verify -keystore "identity.jks" -verbose -certs DeploymentRuleSet.jar

切换到应启动 JNLP 应用程序的 PC

  1. 将签名的 DeploymentRuleSet.jar 复制到 C:\Windows\Sun\Java\Deployment

    必须在 Win7/32 上创建文件夹。

  2. 清理 C:\Users\\AppData\LocalLow\Sun 和 C:\Jenkins-Slave\

    删除整个文件夹C:\Users\<user name>\AppData\LocalLow\Sun (和甲骨文)删除 C:\Jenkins-Slave\ 中的所有文件除了批处理 StartJenkinsSlave

  3. 启动配置 Java,切换安全选项卡

    检查名为“查看 Activity 部署规则集”的链接。链接必须显示 ruleset.xml 的内容。

  4. 将自签名证书导入为可信证书和签名者 CA

    在安全选项卡上开始管理证书并导入之前导出的证书文件 Our_CA.cer两次。将其作为可信证书和 Singer CA 导入。

    Manage Certificates -> Certificate Type: Trusted Certificate/Geschützte Zertifikate, 导入AND 证书类型:签名者 CA/Signaturgeber CA,导入

关于java - Jenkins Slave 使用JNLP 需要安全提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25429270/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com