Google AppEngine - Custom Domain + SSLが簡単になった

  • 74
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

Google AppEngine で独自ドメイン + SSL を使うとき、以前だったら Google Apps を経由しないといけなかったのですが、本日 Apps なしで Google Developers Console から直接設定する機能がリリースされました。
Announcing SSL for GAE Custom Domains in the Developers Console

さっそく試してみました。

まずは Custom Domain を登録する

Adding a custom domain for your application

Developers Console の Compute > AppEngine > Settings で Custom Domains タブをクリックして "Add a custom domain" ボタンをクリック。

  1. 未登録のドメインであれば、 "1. If you haven't already, verify that you own the domain." でドメイン名を入力して Verify をクリックする。 (Name.com などの有名レジストラであれば一瞬で完了、それ以外はTXTレコードなどを追加して認証)
    • サブドメイン( www.example.com など)を使うときも、認証は Naked なドメインでやったほうが良さそう。 AppEngine App で使うサブドメインは後で指定できる。
  2. ドメインを認証したら、 "2. Select the domain you want to point to..." でAppEngine Appで使うドメインを選ぶ。
  3. DNS に設定するレコードが表示されるので、 DNS にレコードを追加する。
    • 1 でサブドメインとしてドメイン認証して、 2 でサブドメインを指定してないと A レコードと AAAA レコードをいっぱい設定するはめになってちょっと面倒。

Add_Domain.png

SSL 証明書を取得する

AppEngine が受け付けるのは下記のタイプの証明書。 More about App Engine support for SSL certificates

  • Single Domain/Hostname
  • Self-signed
  • Wildcard
  • Subject Alternative Name (SAN) / Multi Domain

今回は Rapid SSL で試しにとってみました。やり方忘れがちなのでメモです。

  1. Private Keyを作る # openssl genrsa -des3 -out appengine.key 2048
  2. CSRを作る # openssl req -new -key appengine.key -out appengine.csr
    • Common Name は AppEngine App で使うドメインを正しく入力。(今回なら app.testdomain-00.com )
  3. Rapid SSL の Portal に CSR を貼り付けて証明書を取る
    • -----BEGIN CERTIFICATE----- から始まるやつが出てくるので、 appengine.crt とかの名前で保存する。
  4. Private Key ファイルの Pass Phrase を消す openssl rsa -in appengine.key -out appengine-nopass.key
    • これやってなくてハマった。(Developers Consoleから登録するときにエラーになる: "The SSL certificate provided could not be inserted.")

Developers Console に証明書を登録する

Developers Console の Compute > AppEngine > Settings で SSL Certificates タブをクリックして "Upload a new certificate" ボタンをクリック。

  1. "PEM encoded X.509 public key certificate" には、証明書ファイル(上記の appengine.crt )をアップロード
  2. "Unencrypted PEM encoded RSA private key" には、 Pass Phraseなしの 秘密鍵ファイル(上記の appengine-nopass.key )をアップロード
    AddSSLCert.png

  3. "Upload" ボタンをクリックする

  4. 最後に "Enable SSL for the following custom domains" で AppEngine App に使うドメインにチェックを入れて "Save" ボタンをクリックする。
    App_EngineSSLDomain.png

試してみる

以上でカスタムドメインでも HTTPS でアクセスできるはずです。
SSL Enabled.png

いまのところできなさそうなこと

  • Developers Console から登録する証明書は、 SNI でのみ使用可能。Virtual IP は相変わらず Google Apps 経由でしか使えない模様。 Purchasing a virtual IP (VIP)
  • Naked ドメインでも SSL を使えるようになったのかはまだ試してません。

Google Apps の¥500/月の経費申請書出すのがめんどくさすぎて SSL / Custom Domain を諦めていた自分には、お手軽になって朗報でした。