03.Google App Engineで独自ドメイン&SSL(1/2) | CA Beat エンジニアのブログ

CA Beat エンジニアのブログ

Google App Engineをメインに技術情報を発信しています。


$CA Beat エンジニアのブログ-App Engine セキュア


前編 App Engineの独自ドメイン設定方法(SSLなし・最新UI対応版)
後編 App Engineの独自ドメイン&SSL設定方法


CA Beat エンジニアリーダーのヤマサキです。

Google App Engineでは少し前まで独自ドメインでSSLを使うことができませんでした。
これを理由にGoogle App Engineの導入を見送ったケースもあるかと思います。
実際に私が前職で「新規サービスで利用するクラウド環境の選定」をする際にも
マイナス要因とされてしまいました。


しかし、現在のApp Engineは独自ドメインでもSSLを使うことができるようになっています。

今回から2回に渡り、Google App Engine上に
「独自ドメインを使ったSSL対応スマートフォン向けWebサイト」
を作ることを目的に解説していきます。


説明の都合上"SSLなしの独自ドメインの設定方法"からの解説になります。

SSLなしの独自ドメインの使用は以前からできますので、
既に独自ドメイン設定済みの方、既に知っている方は後編からどうぞ。
最近変わったGoogle AppsのUIに基づいて書いていますので、
次回独自ドメインの設定をする時にでも見に来てもらえたら幸いです。



○独自ドメインをマッピングするアプリを準備する
管理画面から追加するか、既存のアプリを一つ選んでください。
今回の例では「test-yamasaki」を使用します。



○ドメインを登録する

・お名前.com - http://onamae.com/
筆者が仕事でドメインを取得するときに利用するドメイン登録代行業者(レジストラ)。
かつては「老舗だけど目ん玉飛び出るほど価格が高い( д) ゚ ゚」というイメージでしたが、
(注:筆者の個人的な感想であり、所属会社とは一切関係ありません)

今はお値段も手頃。
電話サポートもあります。
クレジットカード以外の支払方法があるのも会社で利用する方にはうれしいかもしれません。
個人的には管理画面も使いやすいと思います。

ただし、ここのDNSサーバーは昔からTTL(※1)を設定できないので、AmazonのRoute53を使うのが吉。


・Value-domain - http://www.value-domain.com/
筆者が個人でドメインを取得するときに利用するドメイン登録代行業者。
使い勝手は悪くないし、DDNSもついてくる。(App EngineではDDNS使わないけど)
こちらで無料提供されるDNSサーバーはちゃんとTTLの設定ができます。
値段と機能の豊富さから個人利用にはオススメ。

ただし筆者自身の経験として、
二度ほどシステム障害に遭遇したことがあるので仕事では使っていません。


ここではドメイン「cabeat-test.jp」を取得したものとして進めます。
以降はご自身で所有しているドメインに読み替えてください。



○SSLを使うホスト名を決める
ホスト名は「ssltest.cabeat-test.jp」とします。

もちろん「www」でもいいのですが、
次回で取得する「テスト用の無料SSL証明書」は同じホスト名で2回取得できないので、
あえて実際に使いそうにない名前にしています。



○DNSサーバーの準備
多くの場合は「ドメイン登録代行業者」が用意してくれています。
使えるDNSサーバーが手元に無い場合はAmazonのRoute 53を使いましょう。

・Amazon Route 53の登録(必要なら)
http://aws.amazon.com/jp/ から申し込みます。



○Google Appsの登録
記事の長さの都合上、これについては軽い説明にします。
詳細な説明が必要な場合は申し訳ありませんがググってください。
まぁ「ドメインの所有権確認」以外は適当に「次へ」で進めていっちゃえばいいんじゃないでしょうかw

次回で取得する「テスト用の無料SSL証明書」の取得時に楽なので、
ユーザー名は「admin」にしておく事をオススメします。

Google Apps 無料版登録画面

*12/7追記
Google Appsの無償版の新規提供が終了しました。
Google Apps for Businessの一ヶ月無料期間をご利用ください。(´・ω・`)


○Appsでドメインの所有権確認

※注意:この手順の途中でAppsの画面に出てくる「赤い確認ボタン」はすぐに押さないでください。
 次の画面に進むとGoogleからDNSサーバーに問い合わせが行きますが、
 一度失敗するとGoogleのDNSサーバーにキャッシュされるのか、
 その後「日単位」で所有権確認が成功しなくなります。
 必ずDNSサーバーの設定をしてから「確認」ボタンを押しましょう。

→「次へ」→「別の方法」→「ドメイン名プロバイダ」→「その他」

Google Appsにドメインの所有権を証明するために、
DNSのTXTレコードにGoogle Appsで指定された文字列を設定します。

「ドメインcabeat-test.jpのTXTレコードに『google-site-verification=******』を設定する、TTLは2分で」
社内のインフラ担当の方にお願いする時はそう言えば伝わるかと思います。
実際のTTL(※1)の設定として120(秒)は短すぎるのですが、
動作確認が完了するまではTTLは短めが良いと思います。
動作確認が完了したら「1日」程度に伸ばすと良いでしょう。
※もしかしたら「TTLが短すぎるとセキュリティ的に良くない」と怒られるかもしれませんが、
 テストの間だけならOKしてくれるんじゃないかな。わからないけど。


AWS Management Consoleにログインして、上のタブで「Route53」を選択します。

CA Beat エンジニアのブログ-Route53


「Create Host Zone」を押します。

CA Beat エンジニアのブログ-Route53

「cabeat-test.jp」と入力して「Create Hosted Zone」を押す。

CA Beat エンジニアのブログ-Route53

「cabeat-test.jp」が一覧に追加されているので、ダブルクリックします。

CA Beat エンジニアのブログ-Route53

「cabeat-test.jp」のレコード一覧が表示されるので、「Create Record Set」を押す。

CA Beat エンジニアのブログ-Route53

Nameは空、Typeは「TXT」を選択、TTLは「120」、Valueは『"google-site-verification=******"』と入力します。
※Route53に登録する際には「"」(ダブルクォート)で囲む必要があります。


ここまで設定した後でAppsの画面に戻って
赤い「確認」ボタンを押せば所有権確認は完了です。



○GoogleAppsで独自ドメインとApp Engineアプリの紐付けを設定

少し前にGoogle Appsの画面構成が結構変わっています。

CA Beat エンジニアのブログ-03.apps01

「ダッシュボード」を開いて画面左下の「一般的なタスク」内、
「その他のアプリケーションやサービスを取得」をクリックします。

CA Beat エンジニアのブログ-03.apps02

「Google App Engine」の「App IDを入力」のところに、
独自ドメインを使用したいApp Engineのアプリ「test-yamsaki」を入力します。

CA Beat エンジニアのブログ-03.apps03

規約に同意して「このサービスを有効にする」ボタンを押します。

CA Beat エンジニアのブログ-03.apps04

これでGoogle AppsとApp Engineのアプリ「test-yamsaki」がつながりました。
次に独自ドメインとマッピングします。

CA Beat エンジニアのブログ-03.apps05


「新しいURLを追加」を押します。

CA Beat エンジニアのブログ-03.apps06

ホスト名として「ssltest」を指定して「追加」ボタンを押すのですが、

CA Beat エンジニアのブログ-03.apps07


○DNSサーバーでCNAME設定
「ドメインcabeat-test.jpのホストssltestのCNAMEに『ghs.googlehosted.com』を設定する、TTLは2分ぐらいで」
社内のインフラ担当の方にお願いする時はそう言えば伝わるかと思います。
※もしかしたら「依頼は一回でしろ」と怒られるかもしれませんが、
 ブログの話の都合上と言えば許してくれるんじゃないかな。わからないけど。

こちらも動作確認が完了したらTTLを1日程度に伸ばすと良いでしょう。


ここではAmazon Rout53を例に解説します。
AWSにログインして、上のタブで「Route53」を選択します。

CA Beat エンジニアのブログ-Route53

「cabeat-test.jp」が一覧に表示されているので、ダブルクリックします。

CA Beat エンジニアのブログ-Route53

「cabeat-test.jp」のレコード一覧が表示されるので、「Create Record Set」を押す。

CA Beat エンジニアのブログ-03.route5305


Nameに「ssltest」、Typeは「CNAME」を選択、TTLは「120」、Valueは「ghs.googlehosted.com」と入力します。
これで「ホストssltestにCNAMEで『ghs.googlehosted.com』を設定する」ということになります。

CA Beat エンジニアのブログ-03.route5306

ssltest.cabeat-test.jp」が追加されました。



○続・GoogleAppsで独自ドメインとApp Engineアプリの紐付けを設定

CA Beat エンジニアのブログ-03.apps08

DNSの設定が完了したので「指定された手順を完了しました」を押します。
これで独自ドメインとApp Engineアプリの紐付けは完了です。

設定内容を確認するには以下からたどります。

CA Beat エンジニアのブログ-03.apps09

画面中央の「ご使用のGoogleアプリケーション」から「全ての設定を表示」をクリック

CA Beat エンジニアのブログ-03.apps10

画面左の一覧から先ほど紐付けたアプリを選択すると、
画面右側に「http://ssltest.cabeat-test.jp 」が確認できます。
URLをクリックすると実際に「紐付けたApp Engineのアプリ」が表示される事を確認できます。

CA Beat エンジニアのブログ-03.confirm

無事表示されればOKです。(特に問題なければすぐに表示されるはずです)
これで独自ドメインとApp Engineアプリの紐付けは完了です。お疲れ様でした。



○ネイキッドドメインのリダイレクト設定

Google App Engineではネイキッドドメイン(*2)をアプリにマッピングできませんが、
Google Appsに「ネイキッドドメインからリダイレクトする機能」があり、
例えば以下のようにリダイレクトさせることができます。
「cabeat-test.jp」→「ssltest.cabeat-test.jp」
まぁhttpのみ対応でhttpsは非対応なので、この記事的にはあまり関係無いんですが、ついでに。

CA Beat エンジニアのブログ-03.apps11

「ドメインの設定」→「ドメイン名」から設定できます。
 設定方法はこれまでと似たような感じなので割愛します。
今回は「Aレコード」に設定する事、
 Route53の場合、値は最初から入っているNSレコード同様に
 改行してテキストエリアに全部突っ込む、ということだけ気をつければ、
 ここまで読んだあなたにはもうできるはずだ!(`・ω・´)mつ


※10月中旬以降ぐらいからこの設定をするためのリンクが消えてしまっていたのですが、
 11/2に再度確認したところ復活していました。
 この機能が消えた時にGoogle Appsのエンタープライズサポートに問い合わせたら
 「その機能は廃止されました」って言われたんだけど・・・復活でいいんですよね?(´・ω・`;)
(2012/11/14 サポートの方から「廃止されていないし、現時点でその予定も無い」と追加の連絡をいただきました。安心して使って良いようです)


※1 TTL
DNSサーバーは仕組み上、設定値が(他のDNSサーバーに)キャッシュされます。
このキャッシュの有効期間として定義するのが「TTL」です。
言い換えると、自分のドメインの情報を管理しているDNSサーバーで設定を変更しても、
このキャッシュ期間が過ぎるまで、
変更がユーザー(訪問者)の使っているDNSサーバーに反映される保証は無いということです。

よって動作確認中にこの時間を長く設定していると、
設定変更後に反映されるまで長い時間待つことになりますし、
本番環境の場合「サーバーのグローバルIPが変わってDNSを変更した場合」に、
ユーザー(訪問者)によって接続できたりできなかったり、というかなり厳しい状況が発生します。
普段はTTLの設定を長め(1日とか)にしておいて、動作確認時とサーバー移転前には短くする、という指定の仕方が良いと思います。
(ついでにRoute53でTTLを短くしたまま外部に公開すると問い合わせ回数が増えて料金も高くつくと思います)

より詳しく知りたい方は以下のページをどうぞ。
「DNSの浸透待ち」は回避できる――ウェブ担当者のためのDNS基礎知識 -INTERNET Watch


※2 ネイキッドドメイン
ホスト名無しのドメインのことです。
「www.cabeat.co.jp」はホストが「www」で、
ホスト名無しの「cabeat.co.jp」がネイキッドドメインです。


○次回予告

次回はいよいよ独自ドメインでSSLの設定をします。
前後編は待たせる感じが個人的に好きじゃないので、今回は一挙二記事公開です。

さあ、次はSSLの設定をしよう!(`・ω・´)


後編 App Engineの独自ドメイン&SSL設定方法へ


★宣伝★
CA BeatではTwitter、Facebookページの運営も行っております!
ブログの更新情報だけでなく、役立つスマホトピックニュースを
選りすぐって配信中♪

ブログ右サイドバーからぜひフォロー、いいね!してくださいねヽ(´▽`)ノ



この記事をはてなブックマークに追加