最近、WindowsにJenkins CIサーバーをセットアップしました。 Active Directory認証を使用するには、アクセスにhttps(SSL/TLS)が必要になります。このセットアップを考えると、これを行うための推奨される方法は何ですか?
%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
実行:
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.err.log
の最後の行の読み取りを開始しない場合。Jenkins.xml
の問題のためにJenkinsが起動しなかった場合、–
(奇妙なWindowsハイフン)文字を実際の-
(ASCIIハイフン)に置き換えます。[Name of website]
がhttps:
のない実際のURLであることを確認してください。例:https://build.jenkins-ci.org
はbuild.jenkins-ci.org
です。.jks
を使用してKeyStore Explorer
ファイルを調べます。 「証明書階層」は、各証明書が別の証明書にネストされていることを示す必要があります。これは、証明書チェーンを説明するためのものです。証明書が隣り合って表示されている場合、それは正しくありません。ステップ1:ジェンキン名にパブリック証明書とプライベート証明書の両方を作成します(そうでない場合はキーソアファイルに変換します)ステップ2:パブリック証明書をブラウザ証明書マネージャーにインポートします(すべてのタブにインポートします)公開鍵と秘密鍵。
手順については、「 jenkinsでHTTPSを有効にしますか? 」を参照してください。