Подтвердить что ты не робот

Как настроить Jenkins CI на использование https в Windows?

Недавно мы установили сервер Jenkins CI в Windows. Теперь, чтобы использовать аутентификацию Active Directory, я бы хотел использовать https (SSL/TLS) для доступа. Учитывая эту настройку, каков рекомендуемый способ сделать это?

4b9b3361

Ответ 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, который содержит оба открытый и закрытый ключ.

Инструкции см. В разделе " Включить HTTPS в jenkins? "