SSL-сертификат Jenkins от Windows AD CS

Я пытаюсь настроить Jenkins в Windows с сертификатом SLL, следуя этим инструкциям. Вместо использования сертификата 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>

Кто-нибудь знает, как создать сертификат SSL из хранилища сертификатов Windows на основе запроса сертификата csr, созданного Java Keytool?

2 ответа

Решение

Я смог запустить Jenkins с SSL, и это то, что я сделал.

О мастере Дженкинс

  1. В оснастке "Сертификаты" MMC выберите "Сертификаты (локальный компьютер)" / "Личные".

  2. Щелкните правой кнопкой мыши Личная папка и выберите Все задачи / Запрос нового сертификата...

  3. Подтвердите следующие две страницы регистрации, нажав Далее.

  4. Проверьте политику регистрации Active Directory веб-сервера.

  5. Предупреждение отображается под политикой регистрации

    Для получения этого сертификата требуется дополнительная информация. Нажмите здесь, чтобы настроить параметры.

    Нажмите здесь.

  6. Заполните Сертификат Свойства:
    Имя субъекта: Общее имя: [имя вашего сервера jenkins]
    Альтернативное имя: DNS: [имя вашего сервера jenkins]
    Альтернативное имя: DNS: [полное имя вашего сервера jenkins, включая ваш домен]
    Подтвердите страницу с помощью OK и следующих двух страниц.

  7. Экспортируйте сертификат в формате PFX
    Щелкните правой кнопкой мыши на сертификате
    Все задачи / Экспорт...

  8. Проверить: Да, экспортировать закрытый ключ
    Установите флажок Включить все сертификаты в путь сертификации, если это возможно.
    Проверить: экспортировать все расширенные свойства
    Поскольку мы экспортируем закрытый ключ, мы должны предоставить пароль
    Проверьте: Пароль и введите свой пароль и подтверждение пароля

  9. Выберите путь для своего сертификата PFX и завершите экспорт.

  10. Экспортируйте сертификат еще раз без пароля в формате X.509 (.CER) в кодировке Base-64.
  11. Переименуйте полученный файл.CER в.PEM.

  12. Создайте хранилище ключей Java на сервере Jenkins с

    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. Перезапустите сервис Дженкинс

Об агенте Дженкинс

  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-slave.xml в %JENKINS_HOME% не содержит-noCheckCertificate в аргументах.

  3. Перезапустите сервис jenkinsslave-D__Jenkins,

Я читаю туториал, который вы упомянули в своем посте. И я вижу это предложение: "если вы создаете собственный сертификат, пропустите шаги 3, 4 и 5". Кажется, ваш код указан в шаге 5.

Вы можете попробовать скопировать файл хранилища ключей в каталог секретов Jenkins, как указано в шаге 6.

Эта ссылка также может быть полезной.

Другие вопросы по тегам