Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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 を諦めていた自分には、お手軽になって朗報でした。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away