Ubuntu上のJenkins + Apacheをhttps(ssl)で動かす。

動機

さくらインターネットVPSでJenkins(hudson)をセキュアに動かしたい。
他にもすでにアプリケーションが動いている(redmine)。

手順

Jenkinsのインストール

Installing Jenkins on Ubuntu - Jenkins - Jenkins Wikiのまんま

wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo echo "deb http://pkg.jenkins-ci.org/debian binary/" > /etc/apt/sources.list.d/jenkins.list
sudo aptitude update
sudo aptitude install jenkins
JenkinsのURL prefix 変更

http://www.zzorn.net/2009/11/setting-up-hudson-on-port-80-on-debian.htmlを参考に
/etc/default/jenkinsを編集して最終行を

JENKINS_ARGS="--webroot=/var/run/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT --prefix=/jenkins"

に変更

sudo /etc/init.d/jenkins restart
Apacheのインストールと設定変更

Running Jenkins behind Apache - Jenkins - Jenkins Wikiを参考に

sudo aptitude install apache2
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod vhost_alias

/etc/apache2/site-available/default-ssl

          ProxyRequests     Off
          ProxyPreserveHost On
          SSLProxyEngine On
          <Proxy http://localhost:8080/jenkins*>
            Order deny,allow
            Allow from all
          </Proxy>
          ProxyPass         /jenkins http://localhost:8080/jenkins
          ProxyPassReverse  /jenkins http://localhost:8080/jenkins
          ProxyPassReverse  /jenkins http://hoge/jenkins

を追加(場所はVirtualHost内)
hogeIPアドレスを指定(DNSに登録してないので)

apache2ctl restart

https://hoge/jenkinsに接続すればOK

注意点

JenkinsのURL prefix 変更を忘れているとRunning Jenkins behind Apache - Jenkins - Jenkins Wiki通りにやっても動かないので注意が必要。(これで少しはまった)
apacheの設定は/etc/apache2/site-available/default-sslに直接書かずに/etc/apache2/site-available/jenkinsなどを作って

sudo a2ensite jenkins

した方が良さそうだが、自分はうまく動かなかった。
動いた人は設定を教えてくださーい!!