お疲れ様です!Jenkins への接続を SSL にします。Jenkins 自体を SSL 対応しつつ nginx を使ってリバースプロキシでの SSL 接続をしてみます。

サーバー証明書の作成管理は自己認証局(CA)と自己証明書(SSL)を Windows 版の XCA で管理してみる を参考にしてください。

PKCS #12(*.p12) 証明書ファイル作成

作成したサーバー証明書を PKCS #12(*.p12) 形式でエクスポートします。

パスワードを指定して作成します。

Jenkins 起動設定ファイルの変更

Running Jenkins with native SSL / HTTPS – Jenkins – Jenkins Wiki を参考に jenkins.xml ファイルを変更します。arguments タグに下記のオプションを追記します。それぞれ環境に応じで変更してください。

--httpsPort=443 --httpsKeyStore="C:\ssl\ci01.p12" --httpsKeyStorePassword="パスワード"

もし http 接続を無効にするときは httpPort オプションを変更します。

--httpPort=-1

Jenkins を再起動して https 接続できるか確認します。
接続できたら「Jenkinsの管理」‐「システムの設定」‐「Jenkinsの位置」‐「Jenkins URL」を https に変更しておきます。

スレーブのSSL接続

本体を変更したらスレーブの方も変更しておきます。 ※ここではJNLPエージェント経由で接続を前提とします。
jenkins-slave.xml ファイルの -jnlpUrl オプション値を https に変更します。
SSL証明書が自己証明書の時は検証エラーで起動できなくなるので次のオプションを追記します。

 -noCertificateCheck 

nginx リバースプロキシ

1つのサーバーでポートを 443 で複数サービス稼働させるときはサブディレクトリで分けますのでその場合の設定です。
ここまでの設定で事足りるのであればここからは不要です。

ここでは

nginx ポート: 443
jenkins ポート: 8443
jenkins サブディレクトリ: /jenkins

とします。

Jenkins 設定

jenkins.xml ファイルの arguments タグを修正します。

SSL ポートの変更

--httpsPort=8443

サブディレクトリの指定を追加

--prefix=/jenkins

nginx 設定

nginx.conf ファイルを変更します。
server.crt と server.key は xca からエクスポートしておき、パスは環境に合わせてください。

http {

    ・・・省略・・・

    server {
        listen       443 ssl;
        server_name  ci01;

        ssl_certificate      "C:/bin/ssl/server.crt";
        ssl_certificate_key  "C:/bin/ssl/server.key";

        ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  5m;

        ssl_ciphers          'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
        ssl_prefer_server_ciphers  on;

        location /jenkins {
            proxy_pass        https://localhost:8443/jenkins/;
            proxy_set_header  X-Real-IP $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header  X-Forwarded-Proto $scheme;
            proxy_set_header  Host $http_host;
        }
    }
}

nginx 、 Jenkins を再起動して https 接続できるか確認します。
接続できたら「Jenkinsの管理」‐「システムの設定」‐「Jenkinsの位置」‐「Jenkins URL」をサブディレクトリ指定に変更しておきます。

0

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*