質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

1481閲覧

DockerのJenkinsをSSL化したい。リバースプロキシを使う方法は?

f6ae

総合スコア92

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2022/04/25 14:28

dockerを使用してJenkinsを立てています。(イメージ取得はdocker pull jenkins/jenkins:lts)
SSL化をするため、証明書ファイルを作成し、それをJenkinsのDockerコンテナ内のnginx.confファイルに設定することでSSL化を行おうと思いました。

しかしJenkinsのDockerコンテナの中を確認したところ、nginx.confは存在しませんでした。
そこでDockerのJenkinsのSSL化について調べたところ、「jwilder/nginx-proxy」などのDocker Imageを用いてリバースプロキシとして使用する方法が多く出てきました。

質問は以下です。
[1] 今回のJenkinsのようにコンテナ内にnginxやapacheが入っていないものはどのようにしてJenkinsが動いているのでしょうか。
[2] リバースプロキシを使用してSSL化する方法は一般的なのでしょうか?わざわざリバースプロキシを用意する必要があるのかというのが腑に落ちません。
[3] リバースプロキシを使用せずSSLの設定をする事は出来ないのでしょうか?出来る場合はどのようにするのでしょうか?

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

[1] 今回のJenkinsのようにコンテナ内にnginxやapacheが入っていないものはどのようにしてJenkinsが動いているのでしょうか。

そもそも、HTTPサーバーとはHTTPというプロトコルを使って応答できるサーバーのことで、JenkinsサーバーもHTTPを使って通信しています。nginxやApacheが必要なわけではありません。

[2] リバースプロキシを使用してSSL化する方法は一般的なのでしょうか?わざわざリバースプロキシを用意する必要があるのかというのが腑に落ちません。

一般的な方法です。
リバースプロキシの接続先に複数のアプリケーションサーバー(今回でいうとJenkinsサーバー)が存在したり、静的なコンテンツ(画像や固定のHTMLページなど)をnginxなどから効率的に配信することを考えると、通信を最初に受けるリバースプロキシサーバーでSSLに対応するのが良いでしょう。

[3] リバースプロキシを使用せずSSLの設定をする事は出来ないのでしょうか?出来る場合はどのようにするのでしょうか?

できるケースとできないケースがあります。
TLS/SSLを扱う場合、通信の開始時にハンドシェイクと呼ばれる暗号化の仕組みの合意が必要になります。互いにどの暗号化形式に対応していて、実際に暗号化するのはどの形式にするか取り決めるわけです。
https://www.cloudflare.com/ja-jp/learning/ssl/what-happens-in-a-tls-handshake/
通常のHTTPに加えてこのような処理を行う必要があるため、前述の通りリバースプロキシでSSL復号を行う前提で考えれば不要なことが多いので、対応していないことが多いです。

投稿2022/04/25 15:39

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

f6ae

2022/04/26 10:36

とても納得できました!どうも有難うございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問