Недавно мы установили сервер Jenkins CI в Windows. Теперь, чтобы использовать аутентификацию Active Directory, я хотел бы потребовать https (SSL/TLS) для доступа. Учитывая эту настройку, каков рекомендуемый способ сделать это?
Как настроить Jenkins CI для использования https в Windows?
Ответы (3)
Перейдите в свой %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
[Winstone 2011/03/16 15:44:21] - Error during HTTPS listener init or shutdown java.security.UnrecoverableKeyException: Cannot recover key
, за которым следует остальная часть трассировки стека. Я уверен, что пароль хранилища ключей правильный. Любые идеи?
- person Nick Jones; 16.03.2011
/etc/sysconfig/jenkins
.
- person dkinzer; 06.05.2012
--httpsKeyStore=path/to/keystore --httpsKeyStorePassword=keystorePassword
в jenkins.xml, как описано в Jenkins Wiki< /а>. В противном случае Jenkins, похоже, генерирует новый сертификат каждый раз при перезапуске, вызывая диалоговое окно «Ненадежное соединение» в Firefox каждый раз, когда отпечатки пальцев меняются.
- person sschuberth; 04.02.2015
Бежать:
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
нельзя сокращать.
Бежать:
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.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 или другое приложение в настоящее время не использует этот порт.
- Если вы видите сайт на компьютере, на котором он размещен, но не видите на другом компьютере, убедитесь, что вас не блокирует брандмауэр.
Шаг 1: Создайте как публичный, так и частный сертификат на ваше имя jenkin (преобразуйте их в файл ключей, если это не так). Шаг 2: Импортируйте общедоступный сертификат в диспетчер сертификатов вашего браузера (импортируйте во все вкладки). открытый и закрытый ключ.
Инструкции см. в разделе «Включить HTTPS в jenkins?"