Как я могу настроить Jenkins CI для использования HTTPS в Windows?
-
24-10-2019 - |
Вопрос
Недавно мы настроили сервер Jenkins CI в Windows. Теперь, чтобы использовать аутентификацию Active Directory, я хотел бы потребовать HTTPS (SSL/TLS) для доступа. Учитывая эту настройку, какой рекомендуемый способ сделать это?
Решение
Перейдите к вашему % 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
Другие советы
Бежать:
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.xml
, заменить–
(странные символы Windows) с фактическим-
(ASCII Гайфик). - Если Дженкинс начинается, но сертификат все еще читается как плохое, убедитесь, что
[Name of website]
фактический URL безhttps:
пример:https://build.jenkins-ci.org
было быbuild.jenkins-ci.org
. - Если это не проблема.
.jks
Файл с использованиемKeyStore Explorer
. Анкет «Иерархия сертификата» должна показать, что каждый сертификат вложен в другой; Это должно проиллюстрировать цепочку сертификатов. Если он показывает сертификаты рядом друг с другом, то это неверно. - Если он не запустится на конкретном порте, например, 443, то проверьте IIS или другое приложение, которое в настоящее время не использует порт.
- Если вы можете увидеть сайт на ПК, на котором он размещен, но не на другом ПК, то убедитесь, что вас не заблокируют брандмауэр.
Шаг 1: Создайте как публичный, так и частный сертификат на вашем имени Jenkin (преобразовать их в файл Keysore, если это не так) Шаг 2: импортируйте общедоступный сертификат в свой браузер государственный и частный ключ.
Для шагов.Включить https в Дженкинсе?"