App Engineでは、appspot.com
アドレスの代わりにexample.com
のようなカスタムドメインでアプリケーションを提供することができます。
HTTPSを使用するつもりがない場合は、そのための簡単な手順がカスタムドメインを使用するで説明されています。
しかしカスタムドメインにHTTPS アドレスを設定したい(すなわち、 SSL セキュリティを使用する)場合は、もう少し設定が必要なので、代わりにこのページの情報と説明を使う必要があります。
App EngineアプリケーションのSSLはGoogle Appsによってサポートされています。Google Appsとはカスタマイズされたウェブアプリケーション一式を提供する、設定の変更が可能なGoogleのサービスです。 Google AppsのSSLサポートは世界規模の分散SSLエンドポイントと内臓負荷分散を提供することで、あなたのアプリを安全・確実・迅速に世界中のユーザーに提供しており、 基本的なSSL以上のものとなっています。
SSLを使用するには、あなたのカスタムドメインを使ってGoogle Appsアカウントを作成し、あなたのApp Engineアプリを提供するアプリの一つとして追加し、 サブドメイン ("www."のような)を割り当て、アプリのSSL セキュリティを有効にします。 ("naked" ドメインを使用したい場合は、 Google Appsでは自動的にそれをサブドメインへリダイレクトさせることができます。) この設定のほとんどの操作は、Google Apps 管理コンソール上で行います。操作に必要なものは以下の通りです:
このページでは、概要、初期手順せ、セットアップ時に必要なその他重要情報を説明します。 そして、最後の説明であるカスタムドメインの SSL を有効化するのページへ案内します。
Google Appsを通してApp Engineアプリを提供することで、直接App Engineを通して提供する時と少し異なる動きが発生します。 ここでは三つの重要な違いがあります:
Google Apps では、ここで説明されているような、App Engine アプリの"セカンダリ"ドメインをサポートしていません。 Google Appsを通してあなたが提供する他のアプリではまだセカンダリドメインを使用することはできますが、 App Engine アプリではあなたのアカウントのプライマリドメインやその別名にしか関連付けることができません。
またGoogle Appsでは"Naked"ドメイン (http://example.com
のような、サブドメインのないドメイン名)はサポートされていません。
しかし、naked ドメインを自動的にサブドメイン(http://www.example.com
や http://myapp.example.com
のような)へリダイレクトするように設定することができます。
あなたがApp Engineで使用する認証方法は、あなたのカスタムドメインに互換性のあるものでなければなりません。 具体的には、認証タイプがGoogle アカウント APIもしくはあなたが使用しているドメインに設定されなければなりません。 開発者コンソールで認証方法を調整するには、 あなたのアプリケーションを選んで、コンピュート > App Engine > 設定 > Google 認証と進んでください。
課金登録する前にGoogle Appsの30日無料試用期間が終了した場合、あなたのアカウントは停止されます。 しかし、その時点でまだ管理者アカウントとしてログインできます。 これにより、課金を有効にしてサービスを続けたり、カウントを削除して他ユーザーのためにあなたのカスタムドメインを解放することができます。
この設定を行うには複数の方法があります。 Below is a typical workflow that should work well for most users, along with some tips and suggestions.
App Engine プロジェクトを作成します、準備ができていない場合はここから読み始めてください。
ドメインを購入します。あらかじめドメイン登録業者から購入して既に保持しているドメインを使用しようすることもできますし、Google Appsアカウントの設定処理時にGoogleを通して購入することもできます(以下にある次の手順)。
Google Apps アカウントを設定します。Google Apps アカウントに登録する間に、ドメインを設定しなければなりません。 You should use your intended custom domain, rather than some other domain that you control. Google Appsのログインで使用するために、そのドメインのEメールアドレスを設定するよう求められます。 To keep your workflow simple, register this email address as a project owner in the Permissions page for the App Engine project. また、ドメイン登録業者のサイトでDNS レコードを多少変更する必要があります。 変更するための情報を確認する場合、Google Appsと通してドメインを購入したのであれば、More controls(ページの下部にある)をクリックしてDomains > Advanced DNS settingsと進むことで、ドメインレコードを編集するための資格情報をGoogle Appsメニュー配下で確認することができます。
このページの情報を最後まで見た後で、 Google Apps ヘルプページの説明にしたがってカスタムドメインのSSL有効化を続けてください。では、最後の4ステップを案内します。それは:
カスタムドメインの場合、App Engine は二つのタイプの SSL をサポートしています。カステムドメインにこれらのどちらかもしくは両方を設定できます。
サーバー ネーム インディケーションは SSL と TLSを拡張する機能です。 この拡張では、複数のドメインに別々の有効な証明書を使用しながら、それらのドメインで同じIPアドレスを共有できるようにします。 古いブラウザやOSのいくつかでは、 SNIをサポートしていません。 Windows XPで動作している Internet Explorer と Safari 、Android3.0(Honeycomb)より前のデフォルトブラウザ で最も顕著です。 ユーザーがSNI をサポートしていないクライアントでSNIのサイトを訪れた場合、HTTPSで接続したユーザーはページを閲覧することができません。 SNI をサポートしていないブラウザを検知し、サポートしているブラウザをインストールするようユーザーに促す処理を組み込むことを推奨します。
あなたのアプリケーションには専用のIP アドレスが割り当てられます。 これにより、SNI 拡張なしでTLSを使用することができ、SSLをサポートしているブラウザやOS上で動作できます。 各VPIは一つの証明書のみをサポートしています。バーチャル IPアドレスは変更される可能性があるので、DNS A レコードは使用しないでください。 バーチャルIP変更による問題を避けるために、 CNAME レコードを使用してください。
App Engine は以下の証明書タイプをサポートしています。:
It requires some things of your certificates and keys:
ホスト証明書に中間証明書やチェーン証明書が必要な場合 (as many Certificate Authorities (CAs) issue)、 公開証明書ファイルの最後に中間証明書やチェーン証明書を追加する必要があります。
いくつかの App Engine の機能では、特別なサブドメインを使用しています。 例えば、アプリケーションではサブドメインを使ってアプリケーションモジュールを扱ったり、別のバージョンのアプリケーションを扱ったりできます。 これらをSSLで使用するには、SANやワイルドカード証明書を設定すると良いです。 ワイルドカード証明書は、サブドメインの第1レベルのみをサポートしています。
Google Apps SSL 課金ステータスページで、SNI 証明書のスロットの増減を行えます。 SNIで提供する追加証明書のスロットを5つ購入するには、"SNI証明書スロットを増やす(Increase SNI Certificate Slots)"ボタンをクリックします。 あなたのアプリケーションで未使用のスロットが5つある場合は、"SNI証明書スロットを減らす(Decrease SNI Certificate Slots)" ボタンが表示されます。 To change the serving status of a certificate, 証明書のアップロードと設定の項目を参照してください。
仮想IP アドレス (VIPs) は、Google Apps SSL 課金ステータスページで個別に割り当て、削除を行います。 VIPを追加するには、"VIPを追加する(Add a VIP)"ボタンをクリックします。 VIPを削除するオプションは、VIPが証明書を使用していない場合のみ使用できます。 VIPから証明書の割り当てを解除するには、証明書のアップロードと設定 の項目を参照してください。
VIPを追加してすぐに削除した場合、それでも一日分の料金が請求されます。
Google Appsのヘルプページに、 証明書をアップロードするための詳細な説明が載っています。
一般的には、証明書は Google Appsコントロールパネルでアップロードと管理を行います。
このメニューオプション SSL for Custom Domainsは、既に App EngineアプリをGoogle Appsアカウントに追加している場合にのみ、
セキュリティメニューに表示されます。
Google Appsコントロールパネルを開くには、https://www.google.com/a/<yourdomain>
にログインしてください。
(例えば、 https://www.google.com/a/example.com
).
今使っている証明書を別の証明書に置き換えることができます。 App Engine only allows this if it can assign all of the current certificate's URLs to the new certificate and the new certificate is in "Not serving" mode.
Replacing a certificate moves all URLs from the current certificate to the new one. If the current certificate uses VIP, it will be moved to the other certificate. The new certificate's serving mode will be set to the current certificate's serving mode. The current certificate's serving mode will be reset to "Not serving".
SSL料金の請求先になるアプリケーションを変更できます。 これはSecurity > Show more > SSL for Custom Domains > Billing Statusとたどった Google Appsコンソールから行えます。
請求先アプリケーションを変更するには:
証明書を削除する前に、あなたの DNS の設定を変更してください。
証明書のURLの CNAME レコードはghs.googlehosted.com
にする必要があります。 (ドメインプロバイダで動作し、あなたのDNS設定を変更します。)
DNS サーバはレコードをキャッシュするので、少なくとも証明書を削除する24時間前にはこの変更をしたほうが良いでしょう。
Google Appsコントロールパネルのドメイン設定タブのSSLの項目で証明書の管理ができます。 この項目を開くには:
Google Appsコントロールパネルのドメイン設定タブのSSLの項目で、証明書を削除できます:
Google AppsのヘルプページにSSL の課金を無効にするための詳細な説明が載っています。
以下の制限は、特にカスタムドメインでSSLを使用している場合に適用されます。:
制限 | 数 |
---|---|
ドメインごとのVIP | 20 |
証明書ごとのマッピング | 20 |
アカウントごとの証明書 | 20 |