環境

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

https://wiki.jenkins.io/display/JENKINS/Running+Jenkins+behind+Apache

構築作業

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」にしたい。。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.