今回も AWS に Sophos を導入する手順について解説します。
構成はタイトルの通り AWS に Sophos を導入し、プライベートサブネットにいるサーバー(Webサーバー)が「インバウンド」と「アウトバウンド」で Sophos を経由する設定です。
今回は【Part.3】になります。
【AWS】Sophos を導入し「インバウンド」と「アウトバウンド」で Sophos を経由するように設定する【Sophos】【Part.1】
【AWS】Sophos を導入し「インバウンド」と「アウトバウンド」で Sophos を経由するように設定する【Sophos】【Part.2】
【AWS】Sophos を導入し「インバウンド」と「アウトバウンド」で Sophos を経由するように設定する【Sophos】【Part.3】
今回の作業
今回は以下の2点の作業をします。
- SSL 証明書を取得して ELB に設定する
- IIS で HTTP → HTTPS のリダイレクトをする
ACM(AWS Certificate Manager)で SSL 証明書が無料で取得できる
AWS管理画面より「セキュリティ、アイデンティティ、コンプライアンス」–「Certificate Manager」をクリックします。
「AWS Certificate Manager」の画面に移動したら「証明書のプロビジョニング」の「今すぐ始める」ボタンをクリックします。
「証明書のリクエスト」画面で「パブリック証明書のリクエスト」を選択して「証明書のリクエスト」ボタンをクリックします。
「ステップ1:ドメイン名の追加」で今回追加する独自ドメイン名を入力し「次へ」ボタンをクリックします。
「ステップ2:検証方法の選択」画面で「DNS の検証」を選択して「確認」ボタンをクリックします。
「ステップ3:確認とリクエスト」画面で設定内容を確認し「確認とリクエスト」ボタンをクリックします。
「ステップ4:検証」画面で、ドメインの横にある「▲」をクリックして展開します。
「ステップ4:検証」画面で、下図のように「独自ドメイン名」を展開したら、「Route 53 でのレコードの作成」ボタンをクリックします。
「Route 53 でのレコードの作成」画面が表示されたら内容を確認し「作成」ボタンをクリックします。
下図のように「成功」のメッセージが表示されることを確認します。
下図のようにエラーが出力されずに「SSL 証明書の発行」と「SSL 証明書の検証」が成功していることを確認します。
ELB に HTTPS のポートを許可し SSL 証明書を取り込む設定手順
次に ELB 側の設定をします。
以下の 2つの設定を行ないます。
- ELB に SSL 証明書を取り込む
- ELB に TCP/443(HTTPS)のアクセスを許可する
ELB に SSL 証明書を取り込む
AWS 管理画面より「サービス」–「コンピューティング」–「EC2」をクリックします。
左側ペインより「ロードバランサ―」をクリックします。
対象の ELB を選択します。
「リスナー」タブをクリックし「編集」ボタンをクリックします。
「リスナーの編集」画面で「追加」ボタンをクリックし、以下の設定を入れます。
- ロードバランサ―のプロトコル ← HTTPS
- ロードバランサ―のポート ← 443
- インスタンスのプロトコル ← HTTP
- インスタンスのポート ← 80
設定を入れたら右側にある「変更」をクリックします。
「証明書の選択」画面で以下のように設定します。
証明書タイプ ← 「ACM から証明書を選択する(推奨)」を選択します。
証明書 ← 先ほど取得した「SSL 証明書」を選択します。
設定したら「保存」ボタンをクリックします。
下図のように「SSL 証明書」が選択されていることを確認し「保存」ボタンをクリックします。
「新しいリスナーの作成」で「リスナーの更新が完了しました。」のメッセージが表示されることを確認し「閉じる」ボタンをクリックします。
ELB に TCP/443(HTTPS)のアクセスを許可する
次に ELB のセキュリティグループの設定をします。
対象の ELB の「説明」タブをクリックします。
「ソースセキュリティグループ」をクリックします。
「インバウンド」タブをクリックして「編集」ボタンをクリックします。
「インバウンドルールの編集」画面で以下のように設定します。
- タイプ ← 「HTTPS」を選択します。
- プロトコル ← TCP が自動的に入ります。
- ポート範囲 ← 443 が自動的に入ります。
- ソース ← 「カスタム」「0.0.0.0/0」の設定を入れます。
設定が完了したら「保存」ボタンをクリックします。
インターネット経由で「HTTPS」での動作確認
ここまで設定が完了したらインターネット経由で HTTPS でアクセスができるか確認します。
ブラウザを開き、URL 欄に「https://独自ドメイン名」を入力してアクセスします。
SSL 証明書を確認するために、下図のように緑色の「カギ」のマークをクリックし、「>」のマークをクリックします。
下図のように「詳細を表示」をクリックします。
ページ情報が表示されたら「証明書を表示」ボタンをクリックします。
「証明書ビューアー」より Amazon より発行されたことが確認できます。
AWS の Windows インスタンス の IIS で HTTP → HTTPS のリダイレクトをする
現在は以下のような構成になっています。
ブラウザより TCP/80(HTTP)にアクセス ← Web サーバーの TCP/80(HTTP)にアクセス
ブラウザより TCP/443(HTTPS)にアクセス ← Web サーバーの TCP/443(HTTPS)にアクセス
しかしせっかく AWS より SSL 証明書を取得して ELB にインポートしたので
これを TCP/80 からアクセスが来ても、TCP/443 からアクセスが来ても「TCP/443(HTTPS)にリダイレクト」をしてセキュアな環境を保ちてるように設定します。
しかし、これが思ったより難しかったです。
ALB(Application Load Balancer)、ELB(Elastic Load Balancer) 共にロードバランサ上の設定で「HTTP→HTTPS」へのリダイレクトはできない
当初は「さすがに Application Loadbalancer は L7 機能が付いているから、ロードバランサ上でリダイレクトすればいいから簡単だろう」と思っていましたが、これができませんでした。
ALB、ELB 共に機能を調べましたが
- ALB(Application Load Balancer)
- ELB(Elastic Load Balancer、Classic Loadbalancer)
両方ともロードバランサの設定で「HTTP→HTTPS」へのリダイレクトはできないことが分かりました。(2018年7月現在)
そのため、以下の AWS の公式サイトの通りに Web サーバー側で設定をする必要があります。
※ただし Apache や nginx などは参考になりそうですが、IIS は参考になりませんでした。
サーバーのHTTPトラフィックをロードバランサのHTTPSにリダイレクトするにはどうすればよいですか?
https://aws.amazon.com/jp/premiumsupport/knowledge-center/redirect-http-https-elb/
AWS Windows インスタンス上の IIS で HTTP → HTTPS のリダイレクトループから抜け出す設定手順
以下の記事を参考に AWS Windows インスタンス上の IIS で HTTP → HTTPS → HTTP → HTTPS のリダイレクトループを起こさずに設定する手順を解説します。
【AWS】HTTPS+ELB リダイレクトループから抜け出す方法とは
https://blog.interstellar.co.jp/2017/08/awshttpselb.html
勉強になりました。ありがとうございました!
URL Rewrite モジュールをインストールする
初めに Windows Server 2016 に「URL Rewrite モジュール」をインストールします。
以下のURLにアクセスします。
https://www.microsoft.com/en-us/download/details.aspx?id=47337
「Download」ボタンをクリックします。
ダウンロードした「rewrite_amd64.msi」ファイルをダブルクリックします。
「IIS URL Rewrite Module 2 Setup」画面が表示されるので「I accept the terms in the License Agreement」にチェックを入れて「Install」ボタンをクリックします。
エラーなくインストールが完了したら「Finish」ボタンをクリックして画面を閉じます。
IIS(Internet Information Services)上での設定
次に IIS(インターネット インフォメーション サービス)上での設定をします。
スタートメニューより「Internet Information Services(IIS)」をクリックします。
IIS管理画面が起動したら、左側ペインよりサイトを選択し、右側ペインより「URL Rewrite」をダブルクリックします。
「URL Rewrite」の画面に移動したら、右側ペインより「Add Rule(s)」をクリックします。
「Add Rule(s)」画面が表示されたら「Blank rule」を選択して「OK」ボタンをクリックします。
「Edit Inbound Rule」画面で以下のように設定します。
- Name ← 分かりやすい任意の名前(http to https redirect)を付けます。
Match URL
- Requested URL ← 「Matches the Pattern」を選択します。
- Using ← 「Regular Expressions」を選択します。
- Pattern ← 「^(.*)$」と入力します。
ここまで設定したら下図のように「Conditions」の「Add」ボタンをクリックします。
「Add Condition」画面が表示されるので以下のように設定を入れます。
- Condition input ← 「{HTTP_X_FORWARDED_PROTO}」と入力します。
- Pattern ← 「^http$」と入力します。
- ignore case ← チェックを入れます。
設定が完了したら「OK」ボタンをクリックして「Add Condition」画面を閉じます。
次に「Action」のセクションで以下のように設定します。
Action
Action Type ← 「Redirect」を選択します。
Redirect URL ← 「https://{SERVER_NAME}{URL}」と入力します。
Append query string ← チェックを入れます。
Redirect type ← 「Permanent(301)」を選択します。
設定が完了したら右側ペインの「Apply」ボタンをクリックします。
下図のように「The changes have been successfully saved.」のメッセージが表示されることを確認し、IIS 管理画面を閉じます。
http から https への URL リライト動作確認
最後に「http」から「https」への URL リライトの動作確認をします。
ブラウザを起動し、URL 欄に「http://~」と入力します。
以下のように「https://~」へ自動的に URL リライトされることを確認します。
過去の記事
【AWS】Sophos を導入し「インバウンド」と「アウトバウンド」で Sophos を経由するように設定する【Sophos】【Part.1】
【AWS】Sophos を導入し「インバウンド」と「アウトバウンド」で Sophos を経由するように設定する【Sophos】【Part.2】
【AWS】Sophos を導入し「インバウンド」と「アウトバウンド」で Sophos を経由するように設定する【Sophos】【Part.3】
Sophos の日本語のマニュアル(管理者ガイド)の探し方
Sophosの詳しい日本語のマニュアル(すべての機能が解説している700ページ近いマニュアル)の探し方です。
迷った時は小まめにマニュアルを読むようにします。
Sophos 日本語ページにアクセスします。
https://www.sophos.com/ja-jp.aspx
上のメニュー画面より「サポート」タグをクリックします。
下図のように「ドキュメント」タグをクリックします。
「製品の検索」のプルダウン一覧より「Sophos UTM」を選択します。
「ソフトウェア UTM 9」より日本語版の管理者ガイドを選択します。
コメント