Let's Encrypt で取得したSSL証明書を GoogleCloudPlatformに設定するための手順です。
CloudStorageとロードバランサを使用して、サーバーレス構成でSSL証明書を設定します。
今回の環境は次の通り。
■ GoogleCloudPlatform
- 負荷分散(ロードバランサ)あり
- CloudStorage
Webサイトは、CloudStorageの静的Webサイトをホストする機能で公開しました。
今回はComputeEngineは登場しません。
参考までに設定手順↓
https://blog.apar.jp/web/7745/
静的Webサイトをホストするメリット
- バケットをまるごとWeb公開することができます
- Web公開できるのは静的コンテンツに限ります
- 独自ドメインも使用可能です。
- LinuxなどでWebサーバを立てる場合のように、サイジングやサーバ運用を行う必要はありません
[分かりやすいスライド] aws版ですが大きく違いはないと思います。
http://www.slideshare.net/horiyasu/amazon-s3web-27138902
[公式]
静的ウェブサイトをホストするように Cloud Storage バケットを設定する方法
https://cloud.google.com/storage/docs/hosting-static-website?hl=ja
CloudStorageで、HTTPS を介してコンテンツを提供したい場合は、以下公式の通りロードバランサが必要となります。
https://cloud.google.com/storage/docs/static-website?hl=ja#https
前置きが長くなりましたが、以下からが本編です。
Let's Encryptとは?
Let's Encrypt は、SSLサーバ証明書を無料で発行してHTTPSを普及させることを目的としているプロジェクトです。
Let's Encrypt の導入方法について
クライアントソフトウェア「Certbot」を使用することで、SSL証明書の取得・更新作業を自動化できます。
https://certbot.eff.org/
独自ドメインがあれば、簡単なコマンド操作で SSL証明書を無料で取得できます。
発行されるSSL証明書は、有効期限3ヶ月です。更新する何かしらの対応が必要です。
Certbot のインストール
今回、サーバーレス構成であるため、MacBookにCertbotをインストールして、SSL証明書のみを作成しました。
サーバーに直接インストールする場合は、3ヶ月の有効期限を自動更新する機能もあります。
homebrewでインストール
brew install certbot
SSL証明書のみ作成
※証明書のサーバーへのインストール設定なしのオプションです。
sudo certbot certonly --manual -d hogehoge.com
実行時にパスワード入力要
認証ファイルを格納
指定URL内に、以下のデータを格納して、ドメイン保有チェックを行います。
Create a file containing just this data:
V_oT7yK970QJSjKnhpOt5MXY80FTm3kqw6SEovuz8gw.wKzC4wXAGD82xUdooIA_hwPXTSQVafVN3L2NOBfyzDM
And make it available on your web server at this URL:
http://hogehoge.com/.well-known/acme-challenge/V_oT7yK970QJSjKnhpOt5MXY80FTm3kqw6SEovuz8gw
Press Enter to Continue
上記メッセージで行くと
格納URL↓
http://hogehoge.com/.well-known/acme-challenge/V_oT7yK970QJSjKnhpOt5MXY80FTm3kqw6SEovuz8gw
ファイルの中身↓
V_oT7yK970QJSjKnhpOt5MXY80FTm3kqw6SEovuz8gw.wKzC4wXAGD82xUdooIA_hwPXTSQVafVN3L2NOBfyzDM
Macbook上でファイルを作成して、CloudStorage上にアップロード。
私は管理画面からアップしました。
証明書が作成されるディレクトリ
正常に認証が終わると、Successが出て、以下にSSL証明書が作成されます。
/etc/letsencrypt/archive
GoogleCloudPlatform・ロードバランサへの設定
HTTPS負荷分散を開始
バックエンドバケットの設定
フロントエンドの設定
新しいフロントエンドのIPとポートを、プロトコルHTTPSで作成。
証明書は、「新しい証明書の作成」とする。
作成したSSL証明書を以下の通りアップロード
ロードバランサで作成したHTTPSのIP:ポートをCloudDNSに設定して終了
これでURLがHTTPSとなるはずです(`・ω・´)ゞ