来自Windows AD CS的Jenkins SSL证书

时间:2018-04-24 07:11:18

标签: ssl jenkins certificate keytool mmc

我正在尝试使用these instructions之后的SLL证书在Windows上配置Jenkins。我们的IT管理员希望使用mmc的证书管理单元使用Windows AD CS生成证书,而不是使用Digicert证书。 但是,我们无法弄清楚如何将keytool生成的csr证书请求导入证书管理单元。 如果我在mmc证书存储区中使用带有重新创建的证书请求的证书,则会拒绝该证书,并显示以下消息:

keytool -importcert -alias jenkins -file "D:\Temp\jenkins\jenkins.pem" -keystore "D:\Temp\jenkins\jenkins.jks"
Enter keystore password:
keytool error: java.lang.Exception: Certificate reply does not contain public key for <jenkins>

有没有人知道如何根据java keytool创建的csr证书请求从Windows证书存储区创建SSL证书?

2 个答案:

答案 0 :(得分:1)

我能够让Jenkins运行SSL,这就是我所做的。

关于詹金斯大师

  1. 在mmc的证书管理单元中,导航到证书(本地 电脑)/个人。

  2. 右键单击“个人文件夹”,然后选择“所有任务/请求新建” 证书...

  3. 单击“下一步”确认接下来的两个“注册”页面。

  4. 检查Web服务器Active Directory注册政策。

  5. 警告信息显示在注册政策

    下方
      

    注册此证书需要更多信息。点击这里   配置设置。

    点击它。

  6. 填写证书属性:
    主题名称:通用名称: [jenkins服务器的名称]
    备用名称:DNS:[ 您的jenkins服务器的名称]
    备用名称:DNS:[完整 您的jenkins服务器的名称,包括您的域名)
    确认 单击确定和以下两页。

  7. 将证书导出为PFX格式
    右键单击 证书
    所有任务/出口......

  8. 检查:是,导出私钥
    检查包括全部 证书路径中的证书(如果可能)
    检查: 导出所有扩展属性
    因为我们正在出口 私钥,我们必须提供密码
    检查:密码和 输入您的密码和密码确认

  9. 选择PFX证书的路径并完成导出。

  10. 在没有密码的情况下再次导出证书  Base-64编码的X.509(.CER)格式。
  11. 将生成的.CER文件重命名为.PEM。

  12. 使用

    在Jenkins服务器上创建一个java密钥库
    keytool -genkeypair -keysize 2048 -keyalg RSA -alias jenkins -keystore jenkins.jks
    
  13. 回答适合贵公司和组织的问题。

  14. 使用

    将PFX证书导入java密钥库
    keytool -importkeystore -srckeystore jenkins.pfx -srcstoretype pkcs12 -destkeystore jenkins.jks -deststoretype JKS
    
  15. jenkins.jks复制到Jenkins所在的秘密目录  已安装(在我的情况下为C:\Program Files (x86)\Jenkins\secrets)。

  16. 将证书添加到Jenkins启动参数:

     -Djavax.net.ssl.trustStore=%JENKINS_HOME%\secrets\jenkins.jks
     -Djavax.net.ssl.trustStorePassword=[your password for the java key store]
    
  17. 重新启动jenkins服务

  18. 在Jenkins代理上

    1. 使用管理员权限从上面将PEM证书从命令行导入java密钥库:

      keytool -import -alias jenkins -keystore "C:\Program Files (x86)\Java\jre1.8.0_161\lib\security\cacerts" -file [your pem file]
      

      输入密钥库的密码(by  默认更改)
      信任此证书? [否]:是的

    2. 确保jenkins-slave.xml中的%JENKINS_HOME%不包含 参数中有-noCheckCertificate

    3. 重新启动服务jenkinsslave-D__Jenkins

答案 1 :(得分:0)

我正在阅读你在帖子中提到的tutorial。我看到这句话: &#34;如果制作自己的证书,请跳过步骤3,4和5&#34;。您的代码似乎是步骤5中指定的。

您可以尝试将密钥库文件复制到Jenkins机密目录,如步骤6中所述。

This link也可以提供帮助。