web-dev-qa-db-ja.com

Windowsでhttpsを使用するようにJenkins CIを設定するにはどうすればよいですか?

最近、WindowsにJenkins CIサーバーをセットアップしました。 Active Directory認証を使用するには、アクセスにhttps(SSL/TLS)が必要になります。このセットアップを考えると、これを行うための推奨される方法は何ですか?

46
Nick Jones

%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/Starting+and+Accessing+Jenkins

35
aflat

実行:

keytool -genkey -keyalg RSA -keystore Jenkins.jks -alias [Name of website] -keysize 2048

First and last nameはWebサイトのURLであり、小文字である必要があることを思い出して質問に答えてください。例:

build.jenkins-ci.org

State or provinceは省略できません。

実行:

keytool -certreq -Keystore jenkins.jks -alias [Name of website] -file jenkins.csr -keysize 2048

Jenkins.csrを証明書プロバイダーに送信し、.p7b拡張子を持ち、次で始まるPKCS#7証明書を要求します。

-----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]

Jenkins.xmlのargumentsノードを次のように変更します。

<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.xmlの問題のためにJenkinsが起動しなかった場合、(奇妙なWindowsハイフン)文字を実際の-(ASCIIハイフン)に置き換えます。
  • Jenkinsが起動しても証明書が引き続き不正な場合は、[Name of website]https:のない実際のURLであることを確認してください。例:https://build.jenkins-ci.orgbuild.jenkins-ci.orgです。
  • それが問題でない場合は、.jksを使用してKeyStore Explorerファイルを調べます。 「証明書階層」は、各証明書が別の証明書にネストされていることを示す必要があります。これは、証明書チェーンを説明するためのものです。証明書が隣り合って表示されている場合、それは正しくありません。
  • 特定のポート(443など)で起動しない場合は、IISまたは別のアプリが現在ポートを使用していないことを確認します。
  • ホストされているPCでサイトを表示できるが、別のPCでは表示できない場合は、ファイアウォールでブロックされていないことを確認してください。
18
Gabe

ステップ1:ジェンキン名にパブリック証明書とプライベート証明書の両方を作成します(そうでない場合はキーソアファイルに変換します)ステップ2:パブリック証明書をブラウザ証明書マネージャーにインポートします(すべてのタブにインポートします)公開鍵と秘密鍵。

手順については、「 jenkinsでHTTPSを有効にしますか? 」を参照してください。

0
ravi creed