LoginSignup
5

More than 3 years have passed since last update.

GCPのマネージドTLSを触ってみた

Last updated at Posted at 2018-12-22

GCPマネージドTLSについて

GCPでGoogleが管理する証明書のサービス提供が開始されました。
これを利用することで、GCP上で構築したWebサービスに無償SSL証明書を簡単に適用することができるようになりました。

自己管理証明書との大きな差は以下の通りです。

自己管理証明書 GCP マネージドTLS
価格 有償 無償
種別 選択可能 DVのみ
ワイルドカード 不可
有効期間 選択可能 3ヶ月

[マネージドTLSについての公式ページ]
https://cloud.google.com/load-balancing/docs/ssl-certificates

既存のWebサイトをHTTPS化してみる

HTTPのみを提供していたロードバランサーに、HTTPSのフロントエンドを追加します。
フロントエンドに割り当ててあるIPアドレスは、「ip-static-address」という名前で事前に静的アドレスを予約取得しました。

スクリーンショット 2018-12-20 19.16.18.png

証明書の作成

以下のコマンドを実行して、証明書リソースを作成します。
始める前にgcloudを最新まであげておきましょう。(gcloud components updateで最新化できます)

$ gcloud beta compute ssl-certificates create [証明書リソース名] --domains [取得したいFQDN]

コマンド実行例

$ gcloud beta compute ssl-certificates create sample-cert --domains sample.example.com

Created [https://www.googleapis.com/compute/beta/projects/<あなたのGCPプロジェクト名>/global/sslCertificates/sample-cert].
NAME                  TYPE     CREATION_TIMESTAMP             EXPIRE_TIME  MANAGED_STATUS
sample-cert           MANAGED  2018-11-16T01:16:43.038-08:00               PROVISIONING
    sample.example.com: PROVISIONING

HTTPSプロキシの作成

HTTPS用のプロキシターゲットを作成します。

$ gcloud beta compute target-https-proxies create [HTTPSプロキシ名] \
--url-map=[URL_MAP名] \
--ssl-certificates=[作成した証明書リソース名]

コマンド実行例

$ gcloud beta compute target-https-proxies create ssl-proxy \
> --url-map=lb-ssl-service \
> --ssl-certificates=ssl-cert

Created [https://www.googleapis.com/compute/beta/projects/<あなたのGCPプロジェクト名>/global/targetHttpsProxies/ssl-proxy].
NAME       SSL_CERTIFICATES  URL_MAP
ssl-proxy  ssl-cert          lb-ssl-service

フロントエンドの追加

ロードバランサの設定にHTTPS用のターゲットプロキシを組み込み、HTTPS対応させます。

gcloud beta compute forwarding-rules create [フォワーディングルール名] \
--global \
--target-https-proxy=[作成したHTTPSプロキシ名] \
--address=[取得済みの静的アドレス名] \
--ports=443

コマンド実行例

gcloud beta compute forwarding-rules create frontend-ssl-rules \
> --global \
> --target-https-proxy=ssl-proxy \
> --ip-protocol=TCP \
> --address=ip-static-address \
> --ports=443

Created [https://www.googleapis.com/compute/beta/projects/<あなたのGCPプロジェクト名>/global/forwardingRules/frontend-ssl-rules].

確認してみる

最初に確認したロードバランサの詳細をみてみると、フロントエンドにHTTPSが追加されました。
上記手順で新規にHTTPSのフロントエンドを追加した直後は、証明書部分をマウスオーバーすると PROVISIONING になっており、アクセスを受け付けません。
10分ほど待つと、以下の画面のようにステータスが ACTIVE になり、実際に利用可能になります。

スクリーンショット 2018-12-20 20.07.05.png

また、以下のコマンドでも確認することが可能です。

$ gcloud beta compute ssl-certificates list

NAME                             TYPE     CREATION_TIMESTAMP             EXPIRE_TIME                    MANAGED_STATUS
ssl-cert                         MANAGED  2018-12-20T02:25:17.851-08:00  2019-03-20T03:00:05.000-07:00  ACTIVE
    sample.example.com: ACTIVE

以下は証明書のプロパティの部分キャプチャとなります。
中身はLet’s Encryptで期間は3ヶ月でした。
スクリーンショット 2018-12-21 12.44.10.png

おわりに

これでHTTPSサイトの構築ができることが確認できました。
この機能を使うことで、開発環境等でエラーを発生させないようにしたり、コストダウンへの貢献などができるかと思います。

みなさまもこれを機会に導入してみてはいかがでしょうか。

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
What you can do with signing up
5