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, и это то, что я сделал.
О мастере Дженкинс
В оснастке "Сертификаты" MMC выберите "Сертификаты (локальный компьютер)" / "Личные".
Щелкните правой кнопкой мыши Личная папка и выберите Все задачи / Запрос нового сертификата...
Подтвердите следующие две страницы регистрации, нажав Далее.
Проверьте политику регистрации Active Directory веб-сервера.
Предупреждение отображается под политикой регистрации
Для получения этого сертификата требуется дополнительная информация. Нажмите здесь, чтобы настроить параметры.
Нажмите здесь.
Заполните Сертификат Свойства:
Имя субъекта: Общее имя: [имя вашего сервера jenkins]
Альтернативное имя: DNS: [имя вашего сервера jenkins]
Альтернативное имя: DNS: [полное имя вашего сервера jenkins, включая ваш домен]
Подтвердите страницу с помощью OK и следующих двух страниц.Экспортируйте сертификат в формате PFX
Щелкните правой кнопкой мыши на сертификате
Все задачи / Экспорт...Проверить: Да, экспортировать закрытый ключ
Установите флажок Включить все сертификаты в путь сертификации, если это возможно.
Проверить: экспортировать все расширенные свойства
Поскольку мы экспортируем закрытый ключ, мы должны предоставить пароль
Проверьте: Пароль и введите свой пароль и подтверждение пароляВыберите путь для своего сертификата PFX и завершите экспорт.
- Экспортируйте сертификат еще раз без пароля в формате X.509 (.CER) в кодировке Base-64.
Переименуйте полученный файл.CER в.PEM.
Создайте хранилище ключей Java на сервере Jenkins с
keytool -genkeypair -keysize 2048 -keyalg RSA -alias jenkins -keystore jenkins.jks
Ответьте на вопросы, подходящие для вашей компании и организации.
Импортируйте сертификат PFX в хранилище ключей Java с
keytool -importkeystore -srckeystore jenkins.pfx -srcstoretype pkcs12 -destkeystore jenkins.jks -deststoretype JKS
Скопируйте
jenkins.jks
в каталог секретов, где установлен Jenkins (в моем случаеC:\Program Files (x86)\Jenkins\secrets
).Добавьте сертификат в параметры запуска Jenkins:
-Djavax.net.ssl.trustStore=%JENKINS_HOME%\secrets\jenkins.jks -Djavax.net.ssl.trustStorePassword=[your password for the java key store]
Перезапустите сервис Дженкинс
Об агенте Дженкинс
Импортируйте сертификат PEM сверху в хранилище ключей Java из командной строки с правами администратора:
keytool -import -alias jenkins -keystore "C:\Program Files (x86)\Java\jre1.8.0_161\lib\security\cacerts" -file [your pem file]
Введите пароль хранилища ключей (по умолчанию изменение)
Доверять этому сертификату? [нет даУбедитесь, что ваш
jenkins-slave.xml
в%JENKINS_HOME%
не содержит-noCheckCertificate
в аргументах.Перезапустите сервис
jenkinsslave-D__Jenkins
,
Я читаю туториал, который вы упомянули в своем посте. И я вижу это предложение: "если вы создаете собственный сертификат, пропустите шаги 3, 4 и 5". Кажется, ваш код указан в шаге 5.
Вы можете попробовать скопировать файл хранилища ключей в каталог секретов Jenkins, как указано в шаге 6.
Эта ссылка также может быть полезной.