LoginSignup
21
22

More than 5 years have passed since last update.

HTTP LBにLet's EncryptでSSL設定したよ

Posted at

とりあえずHTTP LBとSSLを試したいという欲求のもと、試しました。
別にLBである必要はないけどやりたいからやりました。

すでに立ててたowncloudをバックエンドにします。
その時の記事はコチラ

今回の要素としてはこんな感じです。

  • Google Cloud Platform
    • Compute Engine
    • Cloud Storage
    • HTTP Load Balancer
  • Docker
    • Docker Compose
  • Let's Encrypt

インスタンスグループ作成

バックエンドにするためにグループ作ります。

gcloud compute instance-groups unmanaged create "owncloud-group" --zone "asia-east1-a"

gcloud compute instance-groups unmanaged add-instances "owncloud-group" \
    --zone "asia-east1-a" \
    --instances "owncloud-1-vm"

ロードバランサーの設定

とりあえずHTTPのみ有効にしときましょう。
コマンドのっけようと思ったんだけど、LBの画面はコマンドラインの生成をしてくれないので画面のSSいれます。

もうできちゃってますけど、ロードバランサーの作成

ネットワーキング_-_ragnarok.png

HTTP(S) 負荷分散の設定を開始

ネットワーキング_-_ragnarok.png

上から順に設定していきます。

ネットワーキング_-_ragnarok.png

バックエンドサービス作ります。
さっき作ったインスタンスグループを入れて下さい。
あとは基本デフォルトで問題ないはず。
ヘルスチェックも80番ポートのチェックしときましょう。

ネットワーキング_-_ragnarok.png

パスのルールとかはとりあず全部通しとけばいいです。
カスタマイズしたい人はどうぞ。
フロントエンドの設定でとりあえずHTTPだけなので、そのまんまで良いですけど、ドメインのAレコード設定しなきゃいけないのでIPはエフェメラルじゃなくて静的IPを振ってあげましょう。

ネットワーキング_-_ragnarok.png

これで一旦終わり。

Let's Encrypt

証明書作りましょう。
今回は他に実行する場所もないのでowncloud動かしてるサーバ上で実行します。
更新の自動化もしちゃいます。

Certbotインストール

証明書の作成

基本は総合ポータル呼んでやれば問題なしです。
ただ、最初書いてるとおりstandaloneでやったんですがサーバ止めろと言われでもサーバ動かしてないといけなくてツラくてどうしようもなくてwebrootにしました。
証明書作成できればいいんです。

webrootについてはこちらを見てください。

certbot-auto certonly --webroot -w WEBROOT_DIR -m MAIL_ADDRESS -d DOMAIN --agree-tos

MAIL_ADDRESSにはドメインの管理用のメールアドレス、DOMAINは証明書を作成するドメインを指定してください。
これで証明書ができます。
別にこのowncloudサーバに直接インストールするわけではないので、WEBROOT_DIRは書き込み可能な場所ならどこでもいいと思います。

/etc/letsencrypt/に証明書吐き出されてるので後で使います。

LBの設定

LBの設定をしましょう。

まずは証明書リソースの作成

sudo gcloud compute ssl-certificates create owncloud-cert \
    --certificate /etc/letsencrypt/live/DOMAIN/cert.pem \
    --private-key /etc/letsencrypt/live/DOMAIN/privkey.pem \
    --description "owncloud certification."

んで、LBのターゲットプロキシに証明書を設定

gcloud compute target-https-proxies create owncloud-https-lb-target-proxy \
    --ssl-certificate owncloud-cert \
    --url-map owncloud-http-lb

ああ、あとフロントエンドの設定もHTTPのみ設定してたんでHTTPSを追加しときましょう。
HTTPSオンリーにしてHTTPがいらなければHTTPの方は消して下さい。

証明書の更新を自動化

Let's Encryptの証明書は3ヶ月で切れるので、更新を自動化しとくといいです。

たぶんこんな感じで行けると思います。

certbot-auto renew
gcloud compute ssl-certificates update owncloud-cert \
    --certificate /etc/letsencrypt/live/DOMAIN/cert.pem \
    --private-key /etc/letsencrypt/live/DOMAIN/privkey.pem \
    --description "owncloud certification."

更新されてなかったらgcloudも実行しないようにしといた方がいい気もする。

まとめ

HTTP LB、ほとんど使わなくても素で18ドルくらいかかります。
なので今回構築だけしてSSLのインストールして満足したので消しましたw

21
22
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
21
22