サイトのトップへ戻る

Google App Engine ドキュメント日本語訳

カスタムドメインのSSL

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 管理コンソール上で行います。操作に必要なものは以下の通りです:

  • App Engine アプリケーション
  • Google Apps アカウント(App Engineプロジェクトの所有者としての一覧にあるログインIDを使用します)
  • ドメイン(ドメイン登録業者を通じて取得し、その業者のサイトで設定します。)
  • SSL 証明書 (認証局を通じて取得し、 Google Appsへアップロードします。)

このページでは、概要、初期手順せ、セットアップ時に必要なその他重要情報を説明します。 そして、最後の説明であるカスタムドメインの SSL を有効化するのページへ案内します。



App Engine とGoogle Appsの併用について

Google Appsを通してApp Engineアプリを提供することで、直接App Engineを通して提供する時と少し異なる動きが発生します。 ここでは三つの重要な違いがあります:

  • Google Apps では、ここで説明されているような、App Engine アプリの"セカンダリ"ドメインをサポートしていません。 Google Appsを通してあなたが提供する他のアプリではまだセカンダリドメインを使用することはできますが、 App Engine アプリではあなたのアカウントのプライマリドメインやその別名にしか関連付けることができません。

  • またGoogle Appsでは"Naked"ドメイン (http://example.comのような、サブドメインのないドメイン名)はサポートされていません。 しかし、naked ドメインを自動的にサブドメイン(http://www.example.comhttp://myapp.example.comのような)へリダイレクトするように設定することができます。

  • あなたがApp Engineで使用する認証方法は、あなたのカスタムドメインに互換性のあるものでなければなりません。 具体的には、認証タイプがGoogle アカウント APIもしくはあなたが使用しているドメインに設定されなければなりません。 開発者コンソールで認証方法を調整するには、 あなたのアプリケーションを選んで、コンピュート > App Engine > 設定 > Google 認証と進んでください。

停止された Google Apps アカウント

課金登録する前にGoogle Appsの30日無料試用期間が終了した場合、あなたのアカウントは停止されます。 しかし、その時点でまだ管理者アカウントとしてログインできます。 これにより、課金を有効にしてサービスを続けたり、カウントを削除して他ユーザーのためにあなたのカスタムドメインを解放することができます。



設定手順

この設定を行うには複数の方法があります。 Below is a typical workflow that should work well for most users, along with some tips and suggestions.

  1. App Engine プロジェクトを作成します、準備ができていない場合はここから読み始めてください。

  2. ドメインを購入します。あらかじめドメイン登録業者から購入して既に保持しているドメインを使用しようすることもできますし、Google Appsアカウントの設定処理時にGoogleを通して購入することもできます(以下にある次の手順)。

  3. 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メニュー配下で確認することができます。

  4. このページの情報を最後まで見た後で、 Google Apps ヘルプページの説明にしたがってカスタムドメインのSSL有効化を続けてください。では、最後の4ステップを案内します。それは:

    • Engine アプリケーションを、the Google Apps アカウントのサービスとして追加します。
    • App Engine アプリケーションのために、Google AppsのサブドメインURLを追加します。
    • アプリケーションのSSL を有効にします。
    • SSL 証明書を設定します。 後述する証明書用件を満たす認証機関の証明書が必要です。


SSL タイプを選ぶ

カスタムドメインの場合、App Engine は二つのタイプの SSL をサポートしています。カステムドメインにこれらのどちらかもしくは両方を設定できます。

サーバー ネーム インディケーション (SNI)

サーバー ネーム インディケーションは SSL と TLSを拡張する機能です。 この拡張では、複数のドメインに別々の有効な証明書を使用しながら、それらのドメインで同じIPアドレスを共有できるようにします。 古いブラウザやOSのいくつかでは、 SNIをサポートしていません。 Windows XPで動作している Internet Explorer と Safari 、Android3.0(Honeycomb)より前のデフォルトブラウザ で最も顕著です。 ユーザーがSNI をサポートしていないクライアントでSNIのサイトを訪れた場合、HTTPSで接続したユーザーはページを閲覧することができません。 SNI をサポートしていないブラウザを検知し、サポートしているブラウザをインストールするようユーザーに促す処理を組み込むことを推奨します。

バーチャルIP (VIP)

あなたのアプリケーションには専用のIP アドレスが割り当てられます。 これにより、SNI 拡張なしでTLSを使用することができ、SSLをサポートしているブラウザやOS上で動作できます。 各VPIは一つの証明書のみをサポートしています。バーチャル IPアドレスは変更される可能性があるので、DNS A レコードは使用しないでください。 バーチャルIP変更による問題を避けるために、 CNAME レコードを使用してください。



証明書要件

App Engine は以下の証明書タイプをサポートしています。:

  • シングル ドメイン/ホスト名
  • 自己署名
  • ワイルドカード
  • サブジェクトの別名 (SAN) / マルチドメイン

It requires some things of your certificates and keys:

  • 秘密鍵と証明書は PEM 形式アップロードする必要があります。
  • 秘密鍵は暗号化しないでください。
  • 証明書ファイルは最大で5つ持つことができます。; この数値にはチェーン証明書と中間証明書が含まれます。
  • All subject names on the host certificate should match or be subdomains of the domains associated with the account in the Google Apps Control Panel.
  • 秘密鍵は RSA 暗号化を使用しなければなりません。
  • 最大鍵係数: 2048 ビット

ホスト証明書に中間証明書やチェーン証明書が必要な場合 (as many Certificate Authorities (CAs) issue)、 公開証明書ファイルの最後に中間証明書やチェーン証明書を追加する必要があります。

いくつかの App Engine の機能では、特別なサブドメインを使用しています。 例えば、アプリケーションではサブドメインを使ってアプリケーションモジュールを扱ったり、別のバージョンのアプリケーションを扱ったりできます。 これらをSSLで使用するには、SANやワイルドカード証明書を設定すると良いです。 ワイルドカード証明書は、サブドメインの第1レベルのみをサポートしています。



SNI 証明書スロットの数を変更する

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, 証明書のアップロードと設定の項目を参照してください。



VIPの追加と削除

仮想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".

  • 新しい証明書をアップロードします。
  • For the certificate you wish to replace, choose the new certificate from its "Replace with" list and click the Select button.
  • ページ下部にあるSave ボタンをクリックして変更を保存します。


請求先アプリケーションを変更する

SSL料金の請求先になるアプリケーションを変更できます。 これはSecurity > Show more > SSL for Custom Domains > Billing Statusとたどった Google Appsコンソールから行えます。

請求先アプリケーションを変更するには:

  • 現在の 請求先アプリケーション IDの隣にある Change リンクをクリックします。
  • SSL関連関連費用の請求先にするアプリケーションのアプリケーションIDを入力してChangeをクリックしてください。 このGoogle Appsアカウントの全てのSSL料金は、設定したアプリケーションへ請求に追加されます。
  • 前の手順で入力した名前のアプリケーションの管理コンソールにリダイレクトされます。 (Google Appsアカウントの所有者ででないアカウントを使用している場合、App Engineアプリケーションにログインが必要になります。)
  • 全てのSSL関連の費用をこのアプリケーションに請求してもいいか確認してください。
  • Google Apps コントロールパネルのSSL タブにリダイレクトで戻されます。


SSLを無効化する

証明書を削除する

証明書を削除する前に、あなたの DNS の設定を変更してください。 証明書のURLの CNAME レコードはghs.googlehosted.comにする必要があります。 (ドメインプロバイダで動作し、あなたのDNS設定を変更します。) DNS サーバはレコードをキャッシュするので、少なくとも証明書を削除する24時間前にはこの変更をしたほうが良いでしょう。

Google Appsコントロールパネルのドメイン設定タブのSSLの項目で証明書の管理ができます。 この項目を開くには:

  • あなたのドメイン (例えば、http://www.google.com/a/example.com)でGoogle Apps コントロールパネルにログインしてください。
  • Configure SSL ページが開かなかった場合は、Configure SSL Certificates ボタンを押してください。

Google Appsコントロールパネルのドメイン設定タブのSSLの項目で、証明書を削除できます:

  • 削除したい証明書上でDelete Certificateをクリックします
  • ページ下部にあるSaveをクリックします

SSL の課金を無効にする

Google AppsのヘルプページにSSL の課金を無効にするための詳細な説明が載っています。

割り当て量と制限

以下の制限は、特にカスタムドメインでSSLを使用している場合に適用されます。:

制限
ドメインごとのVIP 20
証明書ごとのマッピング 20
アカウントごとの証明書 20