3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IIS をリバースプロキシに設定 - セキュアな Yellowfin 環境を構築

Last updated at Posted at 2023-11-29

はじめに

Yellowfin に SSL 接続する場合、SSL 証明書を配置したリバースプロキシを経由してアクセスする形式を取ることが一般的です。Yellowfin Tomcat のキーストアに証明書を配置するよりも、証明書の扱いがしやすいことが主な理由です。

Linux 環境で Apache をリバースプロキシの役割として設置する方法は、 『EC2にYellowfinのベストなテスト環境を構築するまでのメモ』で紹介しています。

本記事では、Windows 環境で、IIS をリバースプロキシとする構成を実装する手順を紹介します。

概要

下記構成で、Yellowfin 環境を構築します。

image.png

簡単に構成要素を説明します。
・IIS をリバースプロキシとして構成します。リバースプロキシとして、ブラウザからの https アクセスを、http に転換して Yellowfin サーバーに転送する役割を果たします。
・SSL 接続を有効にするための証明書を IIS に配置する必要があります。そのために、win-acme を用いて、IIS サイトに Let’s Encrypt が発行する SSL 証明書を配置し、証明書の更新を自動化します。

Yellowfin の設定

インストールと初期設定

Yellowfin のインストールや初期設定は下記をご参照ください。

・ Yellowfin インストール手順

・ Yellowfin の初期設定をおこないましょう

Yellowfin Tomcat の設定

Yellowfin Tomocat の server.xml に以下の設定を加えます。
Yellowfin へのアクセスを 80 番ポートで設定している場合、Connector port="80" から始まるノードの末尾の部分に、proxyName、proxyPort、scheme、secure の設定を追記します。Reverse Proxy である web.example.jp に対して、https (443) でアクセスされるものがリダイレクトされることを定義している感じです。

server.xml
<Connector port="80" ...
    proxyName="web.example.jp" proxyPort="443" scheme="https" secure="true"/>

Web サーバー / リバースプロキシの設定

以下の手順は Web サーバー (web.example.jp) 上で実行します。

サイトバインドの設定

IIS サイトと DNS 名をバインドします。
下記例では、IIS をインストールすると規定で作成される Default Web Site に対して、web.yellowfin.co.jp をバインドしています。

image.png

win-acme モジュールのダウンロードとインストール

IIS に Let’s Encrypt が発行する SSL 証明書を割り当てるためには、win-acme とモジュールを使用するととても便利です。
下記にアクセスして GitHub からモジュールを取得します。

2023 年 11 月 28 日現在では、v2.2.6 が最新でした。
v.2.2.6 に関わる画面の Assets 欄から 64bit 版インストーラー (win-acme.v2.2.6.1571.x64.pluggable.zip) を入手します。

インストールは、ダウンロードした zip ファイルを任意のディレクトリに展開するだけです。
展開したフォルダ内に、wasm.exe が確認できます。この実行ファイルを起動して win-acme を利用します。

SSL 証明書の入手とサイトへの配置

Command Prompt を管理者権限で起動し、wasm.exe が存在するディレクトリに移動した後、wasm.exe を実行します。実行後は、対話式で設定内容が尋ねられるため、それぞれに回答する流れで設定を進めていきます。

wasm.exe
C:\win-acme\wasm.exe

最初に操作種類一覧から、N: Create certificate (default settings) を選択して、新規証明書の作成を開始します。

wasm.exe
N: Create certificate (default settings)
M: Create certificate (full options)
R: Run renewals (0 currently due)
A: Manage renewals (0 total)
O: More options...
Q: Quit

Please choose from the menu: N

サイトバインディングが設定されている IIS サイトが抽出されてきます。その中から SSL 証明書を配置するサイトを選択します。

wasm.exe
1: Default Web Site (1 binding)

Site identifier(s) or <Enter> to choose all: 1

選択した IIS サイトに対してバインドされている DNS 名一覧が抽出されてきます。バインドされている DNS名が 1 つである場合は、絞り込む必要は無いので、A: Pick *all* bindings を選択します。

wasm.exe
1: web.example.jp (Site 1)
  …
P: Pick bindings based on a search pattern
A: Pick *all* bindings

Binding identifiers(s) or menu option: A

続く 3 つの問いには、yes で回答し、続いて Let’s Encrypt からの通知を受け取る管理者のメールアドレスを入力します。

wasm.exe
1: web.example.jp (Site 1)

Continue with this selection? (y*/n) - yes

Open in default application? (y/n*) - yes

Do you agree with the terms? (y*/n) - yes
Enter email(s) for notifications about problems and abuse (comma-separated): taro.tuna@example.jp

これで、SSL 証明書が発行され、IIS の該当サイトにSSL 証明書が割り当てられます。
サイトバインドの設定に、https が追加されていることが確認できます。

image.png

発効された SSL 証明書が自動で紐づいていることも確認できます。

image.png

タスクスケジューラ を起動すると、win-acme renew に関するタスクスケジューラが追加されていることが分かります。
規定では、毎日 9:00 に証明書の有効期限を確認・更新するタスクが起動するように設定されています。

image.png

リバースプロキシの設定

URL Rewrite モジュールの入手とインストール

下記から URL Rewrite モジュールを入手します。64 bit サーバー OS の場合、Japanese: x64 installer を選択します。

rewrite_amd64_ja-JP.msi を起動してインストールします。オプション設定は無いので、起動してインストーラーを進めていけば、問題無くインストールが完了します。

リダイレクト設定

インターネットインフォメーションサービス (IIS) マネージャーを起動し、該当サイトの機能ビューを確認すると、[ URL 書き換え] の項目が追加されているのが確認できます。

image.png

[URL 書き換え] > [規則の追加] > [リバースプロキシ] の順に選択します。

image.png

HTTP 要求の転送先サーバー名、つまり Yellowfin サーバーの DNS 名 (例 : yellowfin.example.jp) を入力します。
image.png

結果、以下のような書き換え規則が作成されます。

image.png

動作確認

ブラウザから Web サーバー (https://web.example.jp) にアクセスすると、Yellowfin サーバー (yellowfin.example.jp) にリダイレクトされて、Yellowfin のログイン画面が表示されます。

image.png

最後に

『Let's Encrypt を活用して Yellowfin にセキュアアクセス』 で紹介した、Let's Encrypt が発行する証明書と鍵を Yellowfin Tomcatに格納する方法と比べて、証明書の扱いが格段に楽なのがお分かりいただけたかと思います。

では皆様、良いデータ分析を! Cheers!!

参考情報

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?