AWSのALBでHTTP からHTTPS のリダイレクト

こんにちは、webラバーです。

WebのSeO対策でhttps化が必要になってきましたね。

いつ、グーグルアップデートと影響されるかわかりませんから、早めに対策したいですね。HTTP → HTTPS のリダイレクト

Web サーバー側で実装する必要がありました。代表的な例としては、昨今、Web サイトのセキュアな通信、検索ランキングの向上を目的とした、HTTP → HTTPS のリダイレクトは多くのWebサーバーで実装されていると思います

ALB の HTTPS リダイレクト

リスナーの設定にある「ルールの表示/編集」から入れます。HTTP: 80 の項目を変更。

f:id:yuu2634:20180808003241p:plain

画面上の鉛筆マーク、画面左の鉛筆マークとクリックし、編集画面を開きます。今入っている転送先は不要なので、ゴミ箱マークで削除。 f:id:yuu2634:20180808003816p:plain

「アクションの追加」→「リダイレクト先」を選べば OK です。転送先のポート番号は HTTPS なので「443」を入力。チェックマーク→更新 をクリック存。 f:id:yuu2634:20180808004200p:plain

curl で呼んでみると awselb/2.0 なるサーバでリダイレクトされたことが分かります。

$ curl -I http://example.yuu26.com/
HTTP/1.1 301 Moved Permanently
Server: awselb/2.0
Location: https://example.yuu26.com:443/

ALB をメンテナンスサーバとして利用する

次は、HTTPS のリスナーに固定ページを設定してみます。

「アクションの追加」→「固定レスポンスを返す」を選べば OK です。任意のレスポンスコード、Content-Type、レスポンス本体の HTML を設定します。

f:id:yuu2634:20180808005625p:plain

上記で設定した内容のレスポンスが返ってくるようになりました。

$ curl --verbose https://example.yuu26.com/
HTTP/2 503
server: awselb/2.0
content-type: text/html; charset=utf-8

<html>
Under maintenance.
</html>

f:id:yuu2634:20180808012940p:plain

シンプルな HTTPS サーバとして ALB を利用する

HTTPS で特定のレスポンスを返すだけであれば、上記2つを組み合わせて ALB 単体で実現できます。別途 Web サーバを用意する必要がありません。

HTTP リスナーにリダイレクト、HTTPS リスナーに固定レスポンスを設定すれば OK です。

$ curl -LI http://example.yuu26.com/
HTTP/1.1 301 Moved Permanently
Server: awselb/2.0
Location: https://example.yuu26.com:443/

HTTP/2 200
server: awselb/2.0
content-type: text/html; charset=utf-8
(Visited 22 times, 1 visits today)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする