Java 使用JNLP的Jenkins Slave需要安全提示

Java 使用JNLP的Jenkins Slave需要安全提示,java,jenkins,continuous-integration,automated-tests,jnlp,Java,Jenkins,Continuous Integration,Automated Tests,Jnlp,我们使用Jenkins在不同的虚拟机中驱动自动化GUI测试。操作系统是Win7/64和其他Windows变体。虚拟机使用JNLP方式连接到Jenkins主机。无法切换到其他连接,因为作业必须使用GUI执行程序 由于安全性要求的提高,Java现在发出一个对话框来确认Jenkins远程代理的执行。这显然破坏了测试的自动执行。此对话框每24小时显示一次。把这段时间延长到一年也能解决我们的问题 提供的细节涉及不同方面,如 应用程序的关联文件(JNLP)没有数字签名 我们尝试了不同的Java版本(7u6

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

由于安全性要求的提高,Java现在发出一个对话框来确认Jenkins远程代理的执行。这显然破坏了测试的自动执行。此对话框每24小时显示一次。把这段时间延长到一年也能解决我们的问题

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

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

Jenkins是最新的stable 1.565.1(尝试了更新和新安装的版本)。新安装的最新Jenkins 1.576也进行了尝试

这个问题在我们这边可以解决还是只有詹金斯这边可以解决?
有什么办法可以解决这个问题吗?

解决这个问题的办法是使用。主要的困难是在正确的位置创建和存储证书

这是解决上述问题的分步指南
  • 安装Java SDK(v7)

  • 生成自签名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
    
  • 要从密钥库提取证书,请使用以下命令:

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

    
    

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

    "C:\Program Files\Java\jdk1.7.0_67\bin\jar.exe" -cvf DeploymentRuleSet.jar ruleset.xml
    
  • 对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
  • 将签名的DeploymentRuleSet.jar复制到C:\Windows\Sun\Java\Deployment

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

  • 清理C:\Users\\AppData\LocalLow\Sun和C:\Jenkins Slave\

    删除整个文件夹
    C:\Users\\AppData\LocalLow\Sun
    (和Oracle) 删除
    C:\Jenkins Slave\
    中除批处理启动Jenkins Slave之外的所有文件

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

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

  • 将自签名证书作为受信任证书和签名者CA导入

    在“安全性”选项卡上,启动“管理证书”并导入以前导出的证书文件 两次。将其作为受信任证书和Singer CA导入

    管理证书->证书类型:受信任证书/Geschützte-Zertifikate,导入 和证书类型:签名者CA/签名者CA,导入


  • 这在OS X下工作,但DeploymentRuleSet.jar位于
    /Library/Application Support/Oracle/Java/Deployment
    中。