想ひ出のへっぽこBlogⅡ from35

~ 自身の備忘録および学習促進のためにブログります。~

想ひ出11: GCP/Let's Encryptを使ったLBのHTTPS負荷分散の練習

f:id:moqrin3:20181201112650p:plain
GCP CloudLoadBalancing

おはようございます、moqrinです。

今回は前回に続く「Let's Encryptを使ったLBのHTTPS負荷分散の練習」です。
LBの設定ってインスタンスグループ単位じゃないとダメなんかい〜!って思いました。。

やったこと

1. Let's EncryptでワイルドカードSSL証明書を取得する
2. Nginxでリダイレクト設定
3. インスタンスグループ作成
4. LoadバランサーのSSL設定
5. DNSの設定
6. 確認

1. Let's EncryptでワイルドカードSSL証明書を取得する

① とりあえずcertbotをインストール

yum -y install certbot-nginx

ワイルドカードを使えるようにSSL証明書を発行

certbot certonly --manual \
    --preferred-challenges dns-01 \
    --server https://acme-v02.api.letsencrypt.org/directory \
    -m YOUR_MAIL_ADDRESS \
    -d DOMAIN_NAME \
    -d *.DOMAIN_NAME

IPを記録しても良いかどうか聞かれるので、「Y」を入力

TXTレコードを設定してくれと言われるので、Cloud DNSでTXTレコード登録

f:id:moqrin3:20181201112919p:plain

TXTレコードの確認してから上記をEnter

dig -t txt _acme-challenge.DOMAIN_NAME

2. Nginxでリダイレクト設定

# nginx.confに追記

if ($http_x_forwarded_proto = "http") { 
  return 301 https://$host$request_uri; 
}   

ついでにwordpressの設定にも追記しとこう

# wp-config.phpに追記

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
    $_SERVER['HTTPS'] = 'on';   

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

設定完了したインスタンスのスナップショット
↓ ディスク作成
↓ イメージ作成
インスタンステンプレート作成
インスタンスグループ作成

4. LoadバランサーのSSL設定

① バックエンドの設定例

ここはhttp

f:id:moqrin3:20181201113027p:plain

② フロントエンドでのSSL証明書の登録

f:id:moqrin3:20181201113114p:plain

③ フロントエンドの設定例

443,80ポートを両方開放して80で訪問してきた場合に443にリダイレクトさせる

f:id:moqrin3:20181201113222p:plain

5. DNSの設定

対象のドメインをAレコード:フロントエンドのIPで登録

f:id:moqrin3:20181201113257p:plain

6. 確認

しっかりリダイレクトも効いてるね!

f:id:moqrin3:20181201111504p:plain

参考:

簡単!Google Cloud Platform で HTTP/2対応サイトを作る

Let’s Encrypt でワイルドカードを使う

既存の証明書ファイルからSSL証明書リソースを作成する