Как настроить Jenkins CI для использования https в Windows? - PullRequest
46 голосов
/ 15 марта 2011

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

Ответы [ 3 ]

35 голосов
/ 16 марта 2011

Перейдите к своему% JENKINS_HOME% и измените файл jenkins.xml.Там, где вы видите --httpPort=8080, измените его на --httpPort=-1 --httpsPort=8080, вы можете, конечно, сделать порты как угодно, но в моем тестировании (некоторое время назад оно могло измениться), если вы не оставите --httpPort=<something>, тогда Jenkins всегда будетиспользуйте 8080. Поэтому, если вы просто измените --httpPort=8080 на --httpsPort=8080, порт 8080 будет по-прежнему использовать http.

Кроме того, если вы хотите использовать свой собственный сертификат, в нижней части этой страницы есть несколько инструкций..

http://wiki.jenkins -ci.org / display / JENKINS / Запуск + и + Доступ + Дженкинс

18 голосов
/ 08 марта 2012

Выполнить:

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)

Выполнить:

keytool -import -trustcacerts -file jenkins.p7b -keystore jenkins.jks -alias [Name of website]

Заменить узел arguments в 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 не запускается, прочитайте последние строки из 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 или другое приложение в данный момент не использует этот порт.
  • Если вы видите сайт на ПК, на котором он размещен, но не на другом ПК, тотогда убедитесь, что вы не заблокированы брандмауэром.
0 голосов
/ 05 апреля 2019

Шаг 1: Создайте как открытый, так и приватный сертификат на ваше имя jenkin (преобразуйте их в файл keysore, если его нет) Шаг 2. Импортируйте публичный сертификат в менеджер сертификатов вашего браузера (импортируйте во все вкладки) Шаг 3: Разместите ваш jenkin с помощью файла JKS, который содержит как открытый, так и закрытый ключ.

Инструкции см. В « Включить HTTPS в jenkins? »

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...