Let's Encrypt でSSL無料化 in gcp 

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://qiita-image-store.s3.amazonaws.com/0/142933/a5f45ac9-d55b-cd84-ed92-35ffe955023e.png)
https://cloud.google.com/storage/docs/static-website?hl=ja#https

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

# Let's Encryptとは？
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/da8c8d66-281c-845e-2263-cb51b8f29f47.png)
Let's Encrypt は、SSLサーバ証明書を無料で発行してHTTPSを普及させることを目的としているプロジェクトです。

# Let's Encrypt の導入方法について
クライアントソフトウェア「Certbot」を使用することで、SSL証明書の取得・更新作業を自動化できます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/da69fbed-c16f-9dca-9776-801399fa9c25.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](https://qiita-image-store.s3.amazonaws.com/0/142933/bb0bbe24-b25d-66b0-3698-1fce11480278.png)

### 証明書が作成されるディレクトリ
正常に認証が終わると、Successが出て、以下にSSL証明書が作成されます。
`/etc/letsencrypt/archive`
![スクリーンショット 2017-12-09 17.05.48.png](https://qiita-image-store.s3.amazonaws.com/0/142933/1e838b4c-e143-6673-2426-5b938b1b5279.png)


# GoogleCloudPlatform・ロードバランサへの設定
## HTTPS負荷分散を開始
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/6e69403a-0ffc-bd85-aaa0-e3c3a9ebc417.png)
## バックエンドバケットの設定
![スクリーンショット 2017-12-09 17.04.11.png](https://qiita-image-store.s3.amazonaws.com/0/142933/e034f887-e338-ca6e-26e3-8dae325ce74e.png)
## フロントエンドの設定
新しいフロントエンドのIPとポートを、プロトコルHTTPSで作成。
証明書は、「新しい証明書の作成」とする。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142933/7ed3b6ec-3d28-572e-273c-f957023dfc47.png)

### 作成したSSL証明書を以下の通りアップロード
![スクリーンショット 2017-12-11 14.36.33.png](https://qiita-image-store.s3.amazonaws.com/0/142933/ff846e30-10e4-bcfd-1c7e-97e34ae29000.png)

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

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