LoginSignup
44
41

More than 5 years have passed since last update.

GAE(Google AppEngine)でのカスタムドメインと無料SSL証明書を設定してみた

Posted at

アプリケーションをGAE(Google AppEngine)で構築し、独自ドメインでアクセスできるように設定してみました。
GAEは、HTTPS通信に必要なSSL証明書を無料で、かつ面倒な更新作業などもフルマネージドしてくれる機能が提供されており、その設定方法も記載しました。管理の煩わしさから解放され、非常に便利です。
下記のような流れで設定していきます。

1.ゾーン追加(CloudDNS)
2.レジストラ登録(各レジストラ)
3.ドメイン所有権の証明(ウェブマスターセントラル、CloudDNS)
4.カスタムドメインの追加(GAE)
5.カスタムドメインのレコード登録(CloudDNS)

※ ドメインは取得している前提です。
※ 以下、スクショは分かりやすくするために hogehoge と書き換えています。

ゾーン追加

CloudDNSにてゾーンを追加します。
image.png

レジストラの登録

ゾーンを追加した後、下記NSレコードのネームサーバーをレジストラ(お名前.comとか)に登録します。
image.png

下記NSレコードをコピーして貼り付けるように指示されます。

ns-cloud-a1.googledomains.com.
ns-cloud-a2.googledomains.com.
ns-cloud-a3.googledomains.com.
ns-cloud-a4.googledomains.com.

ドメイン所有権の証明

サイト追加

ウェブマスターセントラルを利用して、ドメインを所有していることを証明します。 https://www.google.com/webmasters/verification/home?hl=ja&authuser=0
ドメインを選択、「別の方法タグ -> ドメイン名プロバイダ -> その他※」を指定します。ドメインの所有者であることを証明するため、指定された値のDNSレコード(TXT)を設定するように指示されます。この値をメモしておき、画面は閉じずにCloudDNSの画面に移動します。
※ CloudDNSではなく、レジストラのDNSを使う場合は、その他ではなく、例えばonamae.comなどを選択して指示通りに登録します。
image.png

TXTレコードのCloudDNS登録

ウェブマスターセントラルに表示されていた値を、Cloud DNSで作成したゾーンのTXTレコードに追加します。
image.png

ウェブマスターセントラルに戻り、「確認」ボタンを押します。TXTレコードが反映されて確認がとれれば、証明されたこととなり、下記画面になります。
※ 反映が未だの場合、「プロパティを確認できませんでした」となるので、しばらく時間をおいて「確認」を実行します。
image.png

「確認が完了しました。」と表示されれば、正常終了です。ウェブマスターセントラル上のサイトにも確認結果の履歴(成功/失敗)が表示されます。
image.png

GAEのカスタムドメイン追加

GAEの各サービスに、カスタムドメインをマッピングさせます。今回はGAEのサービスdefaultにカスタムドメイン(www.hogehoge.com)を設定します。
image.png

AppEngineの設定より、「カスタムドメイン -> カスタムドメインの追加」を選択します。
image.png

使用するドメインを選択します。
image.png

マッピングするドメインを指定し、保存します。
image.png

保存が完了すると、CloudDNSにレコードを登録するように指示されます。レコードの内容をメモしておき、完了を選択します。
image.png

下記のように、GAEのカスタムドメインにwww.hogehoge.comが追加されました。
image.png

CloudDNSのレコード登録

ドメインマッピングの保存後にメモしておいたレコード(A、AAAA、CNAME)を登録します。
「レコードセット追加」より、各レコードを追加します。
image.png

これで http://www.hogehoge.com はGAEの default サービスにマッピングされ、ドメイン名でアクセスできるようになります。
このとき、SSL証明書はGoogleが無料で発行してくれるので、https通信も可能になります。(GAEの設定で、SSLセキュリティ「Googleが自動管理、更新」と表示されていれば、OKです。)SSL証明書はLet's Encryptを使っているようです。また、通常は3か月で更新しなければいけませんが、これもGoogleが自動で更新作業を行ってくれます。面倒な初期設定も煩雑な管理もなく、これはかなり便利です。(マネージドセキュリティを無効にすれば、発行したSSL証明書を利用することもできます。)

ワイルドカードマッピング(*.hogehoge.com)を使って設定すると、サブドメイン名と一致するGAEのサービスがマッピングされます。(例えば、http://console.hogehoge.com はGAEのconsoleサービスにマッピングされることになります。)

ただし、ワイルドカードマッピングはSSL証明書の自動更新機能が利用できません。Let's Encryptが2017年12月にワイルドカード対応するようですので、GAEでの対応はもう少し先になりそうです。現時点では、別途SSL証明書を発行し、アップロードすることでHTTPS通信ができます。

参考

参考ドキュメント
ルーティングについて
https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed

カスタムドメインとSSLについて
https://cloud.google.com/appengine/docs/standard/python/console/using-custom-domains-and-ssl

44
41
0

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
44
41