環境
CentOS 6.9
Jenkins 2.116
apache 2.2.15
mod_ssl 2.2.15
概要
JenkinsをSSL化する方法は、2種類あるみたい。
1,Jenkins自体に証明書を設定してSSL化する。
→この方法は、Jenkinsがrootで動作していない場合は1023以下のPort番号が利用できない。(Port 8443などを利用する事が一般的みたい。)
2,Jenkinsの前に、Webサーバ(ApacheやNginx)を構築して、
Webサーバ → Jenkinsという経由でアクセスさせる。
今回の場合は、2の方法の説明です。
最近はNginxが人気みたいですが、特にこだわりがないのでApacheで構築します。
※Jenkinsは、インストール済み前提の説明です。
参考URL
構築作業
apache mod_sshインストール
yum -y install httpd mod_ssl
apache設定その1
vi /etc/httpd/conf/httpd.conf
# NameVirtualHost *:80
↓
NameVirtualHost *:80
NameVirtualHost *:443
apache設定その2
vi /etc/httpd/conf.d/jenkins.conf (←新規作成)
<VirtualHost *:80>
ServerName my.domain # ←ここに自分のドメイン
Redirect permanent / https://my.domain/ # ←ここに自分のドメイン
</VirtualHost>
<VirtualHost *:443>
ServerName my.domain # ←ここに自分のドメイン
SSLEngine On
SSLCertificateFile /etc/pki/tls/certs/localhost.crt # ←その内、Let's Encryptにしたい。。
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key # ←その内、Let's Encryptにしたい。。
ProxyRequests Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyPassReverse / http://my.domain/ # ←ここに自分のドメイン
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
</VirtualHost>
apacheの再起動
service httpd restart
その他
そのうち、証明書を自己署名から「Let's Encrypt」にしたい。。