79
67

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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 で使うサブドメインは後で指定できる。
  1. ドメインを認証したら、 "2. Select the domain you want to point to..." でAppEngine Appで使うドメインを選ぶ。
  2. 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 )
  1. Rapid SSL の Portal に CSR を貼り付けて証明書を取る
  • -----BEGIN CERTIFICATE----- から始まるやつが出てくるので、 appengine.crt とかの名前で保存する。
  1. 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 を諦めていた自分には、お手軽になって朗報でした。

79
67
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
79
67

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?