【问题标题】:Jenkins SSL certificate from Windows AD CS来自 Windows AD CS 的 Jenkins SSL 证书
【发布时间】:2018-10-04 08:20:08
【问题描述】:

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

【问题讨论】:

    标签: ssl jenkins certificate keytool mmc


    【解决方案1】:

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

    关于詹金斯大师

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

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

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

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

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

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

      点击它。

    6. 填写证书属性:
      主题名称: 通用名称: [您的 jenkins 服务器的名称]
      替代名称:DNS:[the 您的 jenkins 服务器的名称]
      替代名称: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]
      

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

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

    3. 重启服务jenkinsslave-D__Jenkins

    【讨论】:

      【解决方案2】:

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

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

      This link 也很有帮助。

      【讨论】:

      • 我可以跳过步骤 3、4 和 5。我可以将密钥库文件复制到 jenkins secrets。 Jenkins 确实启动并且没有抱怨 SSL 问题。但是,当我使用 https:\\jenkins 导航到 jenkins 网站时,浏览器会警告连接不安全。避免警告并允许 AD 登录是使用 SSL 运行 jenkins 的主要原因。
      • 你读过这篇文章吗? support.cloudbees.com/hc/en-us/articles/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-25
      • 1970-01-01
      • 2021-08-07
      • 1970-01-01
      • 2017-04-13
      相关资源
      最近更新 更多