来自 Windows AD CS 的 Jenkins SSL 证书

Jenkins SSL certificate from Windows AD CS

我正在尝试使用 these instructions 之后的 SLL 证书在 Windows 上配置 Jenkins。我们的 IT 管理员不使用 Digicert 证书,而是希望使用 mmc 的证书管理单元使用 Windows AD CS 生成证书。 但是我们不知道如何将 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 证书?

我正在阅读您在 post 中提到的 tutorial。我看到这句话: "if making your own certificate skip steps 3, 4, and 5"。您的代码似乎是在步骤 5 中指定的。

您可以尝试将密钥库文件复制到步骤 6 中提到的 Jenkins secrets 目录。

This link 也有帮助。

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

关于 Jenkins Master

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

  2. 右键单击个人文件夹和select所有任务/请求新建 证书...

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

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

  5. 注册政策下方显示一条警告消息

    More information is required to enroll for this certificate. Click here to configure settings.

    点击它。

  6. 填写证书属性:
    主题名称:常用名称: [你的 jenkins 服务器名称]
    备选名称:DNS: [the 您的詹金斯服务器的名称]
    备用名称:DNS:[完整 您的詹金斯服务器的名称,包括您的域]
    确认 OK的页面和下面两页。

  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所在的secrets目录 安装(在我的例子中 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服务

关于 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]
    

    输入密钥库的密码(通过 default changeit)
    信任这个证书吗? [否]:是

  2. 请确保您的 jenkins-slave.xml%JENKINS_HOME% 中不包含 -noCheckCertificate 在参数中。

  3. 重启服务jenkinsslave-D__Jenkins.