Недавно мы установили сервер Jenkins CI в Windows. Теперь, чтобы использовать аутентификацию Active Directory, я бы хотел использовать https (SSL/TLS) для доступа. Учитывая эту настройку, каков рекомендуемый способ сделать это?
Как настроить Jenkins CI на использование https в Windows?
Ответ 1
Перейдите в свой% JENKINS_HOME% и измените jenkins.xml. Где вы видите --httpPort=8080
изменить его на --httpPort=-1 --httpsPort=8080
, вы можете, конечно, сделать порты чем угодно, но в моем тестировании (некоторое время назад это могло измениться), если вы не держите --httpPort=<something>
, тогда Дженкинс всегда будет используйте 8080. Поэтому, если вы просто измените --httpPort=8080
на --httpsPort=8080
, порт 8080 по-прежнему будет использовать http.
Кроме того, если вы хотите использовать свой собственный сертификат, в нижней части этой страницы есть несколько инструкций.
http://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins
Ответ 2
Run:
keytool -genkey -keyalg RSA -keystore Jenkins.jks -alias [Name of website] -keysize 2048
Отвечайте на вопросы, помня, что First and last name
является URL-адресом веб-сайта и должен быть строчным. Пример:
build.jenkins-ci.org
State or province
не может быть сокращен.
Run:
keytool -certreq -Keystore jenkins.jks -alias [Name of website] -file jenkins.csr -keysize 2048
Отправьте Jenkins.csr
вашему поставщику сертификатов и запросите сертификат PKCS # 7 с расширением .p7b
и начните с:
-----BEGIN PKCS #7 SIGNED DATA-----
Примечание: пробные сертификаты обычно не доступны в формате .p7b
, но вы можете комбинировать файлы .cer
с помощью этого инструмента, который сообщил об успехе, но не работал у меня. (Https://www.sslshopper.com/ssl-converter.html)
Run:
keytool -import -trustcacerts -file jenkins.p7b -keystore jenkins.jks -alias [Name of website]
Измените arguments
node в Jenkins.xml следующим образом.
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=-1 --httpsPort=443 --httpsKeyStore="%BASE%\Cert\Jenkins.jks" --httpsKeyStorePassword=[Cert password from step 1]</arguments>
Устранение неполадок:
- Если Дженкинс не начинает читать последние строки из
Jenkins.err.log
. - Если Jenkins не запускался из-за проблемы с
Jenkins.xml
, замените символы–
(странные дефисы Windows) фактическим-
(ASCII-дефис). - Если Jenkins запускается, но сертификат по-прежнему считается плохим, убедитесь, что
[Name of website]
является фактическим URL-адресом без примераhttps:
:https://build.jenkins-ci.org
будетbuild.jenkins-ci.org
. - Если это не проблема, проверьте файл
.jks
, используяKeyStore Explorer
. "Иерархия сертификатов" должна показывать, что каждый сертификат вложен в другой; Это иллюстрирует цепочку сертификатов. Если он показывает сертификаты рядом друг с другом, тогда это не правильно. - Если он не запускается на определенном порту, например 443, тогда проверьте IIS или другое приложение в настоящее время не использует порт.
- Если вы видите сайт на ПК, на котором он размещен, но не на другом ПК, проверьте, не заблокирован ли брандмауэр.
Ответ 3
Шаг 1: Создайте как открытый, так и приватный сертификат на ваше имя jenkin (если его нет), преобразуйте их в файл keysore. Шаг 2: Импортируйте открытый сертификат в менеджер сертификатов вашего браузера (импортируйте во все вкладки). Шаг 3: Разместите Jenkin, используя файл JKS, который содержит оба открытый и закрытый ключ.