Help us understand the problem. What is going on with this article?

Let's Encrypt でSSL無料化 in gcp

More than 1 year has passed since last update.

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 を介してコンテンツを提供したい場合は、以下公式の通りロードバランサが必要となります。
image.png
https://cloud.google.com/storage/docs/static-website?hl=ja#https

前置きが長くなりましたが、以下からが本編です。

Let's Encryptとは?

image.png
Let's Encrypt は、SSLサーバ証明書を無料で発行してHTTPSを普及させることを目的としているプロジェクトです。

Let's Encrypt の導入方法について

クライアントソフトウェア「Certbot」を使用することで、SSL証明書の取得・更新作業を自動化できます。
image.png
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上にアップロード。
私は管理画面からアップしました。
スクリーンショット 2017-12-09 16.58.03.png

証明書が作成されるディレクトリ

正常に認証が終わると、Successが出て、以下にSSL証明書が作成されます。
/etc/letsencrypt/archive
スクリーンショット 2017-12-09 17.05.48.png

GoogleCloudPlatform・ロードバランサへの設定

HTTPS負荷分散を開始

image.png

バックエンドバケットの設定

スクリーンショット 2017-12-09 17.04.11.png

フロントエンドの設定

新しいフロントエンドのIPとポートを、プロトコルHTTPSで作成。
証明書は、「新しい証明書の作成」とする。
image.png

作成したSSL証明書を以下の通りアップロード

スクリーンショット 2017-12-11 14.36.33.png

ロードバランサで作成したHTTPSのIP:ポートをCloudDNSに設定して終了

これでURLがHTTPSとなるはずです(`・ω・´)ゞ

tomoshin
株式会社diffeasy 取締役COO ITのむずかしいことを簡単にしています。プロジェクト運営が得意です。 (開発もやります。) Ruby on Rails/GoogleCloudPlatform/Vue.js
https://diffeasy.com/
diffeasy
「世界中の“むずかしい”を簡単に」を経営理念として、オーダーメイドシステムおよび自社サービス(大会運営向上心)を開発・運営
https://diffeasy.com
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