当ブログはAmazon アソシエイトを利用しているのですが、以下の理由で2回reject(却下)を食らっています。
登録サイト情報httpsアドレスで登録しているのに、なんでURLがhttpで登録されているんですか、Amazonさん??
- Amazonアソシエイト サポートに問い合わせても、再度登録し直して下さいとのこと
- 再登録しても上記理由でreject
- どないなっとんねーんとAmazonアソシエイト サポートに回答を求めても、再度登録して下さいの一点張り
- そうじゃなくて、どないなっとんねーんと回答を再度促したら応答がなくなりました(おいっ)
という具合で、ダメダメな対応です。
仕方ないのでシステム側で対応する事にしました。
GAE単体で当ブログを運用していた当時は、app.yamlでリダイレクトする記述を書けばよかったのですが、現在の当ブログはロードバランサとGAEを連携している構成なので、httpsリダイレクトはロードバランサ側で対応する必要があります。
イメージとしてはこんな感じになります。
前提条件
HTTPSロードバランサとバックエンドサービスが既に設定済という前提となります。
(上記GIFアニメの③と④は設定済の状態)
httpリクエストが来た時に、httpsでリダイレクトする部分(上記GIFアニメの①、②の箇所)の設定手順が当記事の内容となります。
httpsリダイレクト用の設定ファイルを作成(yaml)
参考情報をみて知ったのですが、ロードバランサの設定情報について、yamlファイルに定義、インポートが可能なようなので、試してみます。
kind: compute#urlMap
name: 【URLMap名】
defaultUrlRedirect:
redirectResponseCode: "MOVED_PERMANENTLY_DEFAULT"
httpsRedirect: True
httpsでリダイレクトを指示しているだけのシンプルな内容です。
なお、yamlファイルのサンプルは、【CloudSDKインストールディレクトリ】/lib/googlecloudsdk/schemas/compute/v1/UrlMap.yamlにあります。
httpsリダイレクト用のURL Mapの作成
Cloud SDKコマンドでhttpsリダイレクト用のURL Mapを作成をします。
gcloud compute url-maps import 【URLMap名】 \
--source path/to/前述で作成した設定ファイル.yaml \
--global
作成されたhttpsリダイレクト用のURLマップをConsoleで見ると下記のようになっていました。
yamlファイルのredirectResponseCode
の記述内容により、レスポンスコードを変えれるみたいです。
このあたり、公式Docに情報がなかったので、反映されれば追記しようと思います。
ターゲットhttpプロキシを作成しhttpsリダイレクト用URL Mapに追加
httpプロキシを作成し、前述で作成したhttpsリダイレクト用のURLMapへ追加します。
クライアントへhttps付きURLを返すだけなので、バックエンドの指定は不要です。
gcloud compute target-http-proxies create 【httpプロキシ名】 \
--url-map=【前述で作成したhttpsリダイレクト用のURLMap名】 \
--global
フロントエンド(forwarding rule)を作成
フロントエンド(転送ルール)の設定です。
httpリクエストを受けるのでポートは80で指定します。
gcloud compute forwarding-rules create 【フロントエンド名】 \
--target-http-proxy=【前述で作成したターゲットプロキシ名】 \
--address=【ドメインのAレコードに紐づくIPアドレス】 \
--ports=80 \
--global
動作確認
ロードバランサの設定反映に少し時間がかかりますが、数分待てば完了します。
(1〜2分ほどで反映されると思います)
curlでhttpsリダイレクトしているか確認します。
curl -s -D - -o /dev/null http://yamavlog.com
HTTP/1.1 301 Moved Permanently
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Referrer-Policy: no-referrer
Location: https://yamavlog.com/
Content-Length: 218
Date: Thu, 10 Dec 2020 09:27:48 GMT
上手くいきました。
まとめ
ロードバランサの知識が増えたということで良しとします。
参考にさせて頂いたサイトの運営者様、ありがとうございました。