構成済みの OCI ロードバランサに無償のSSL証明書を追加し https 通信ができるか試してみます。
準備
SSL証明書を入手
Let's Encrypt で無料SSL証明書を使います。入手の手順については巻末の参考資料をご覧ください。ここでは入手時のトピックのみ記載します。
- certbotツールのパラメータ --domain にドメイン(例) lb.cocotaro.com)を指定
- TXTレコードの設定はDNSゾーンの画面から手動でおこないました。
- 生成された4つのpemファイルから、今回は次の2つを使います。
- cert.pem SSL/TLS サーバ証明書 (公開鍵を含む)
- privkey.pem 秘密鍵
お試しの構成
- 2つのWebアプリのフロントにロードバランサがあり、ブラウザからのリクエストをHTTP 80番ポートで受けてます。
- ブラウザからリクエスト(例) lb.cocotaro.com)するとロードバランサでラウンドロビンされ2つのWebアプリで交互に処理されます。
- ブラウザにはリクエストを処理したサーバーの名前(osaka01 or osaka02)が表示されます。
- 現状だとブラウザとロードバランサ間は単に HTTP通信なので、悪意のあるユーザーにパスワードやクレジットカード番号などの機密情報を盗まれる可能性があります。
- そのためロードバランサにSSL証明書を設定し、ブラウザとロードバランサ間でHTTPS通信の暗号化をおこないます。安全な通信経路を確保し機密情報の解読を困難にします。
ロードバランサの設定
1. SSL証明書を追加
入手した SSL証明書と秘密鍵を設定します。構成済みのロードバランサを選択し、画面左のリソース から証明書をクリックし、[証明書の追加] でSSL証明書を設定します。
[証明書名] 任意の名前を入力
SSL証明書
SSL証明書ファイルの選択 を選択し、 **cert.pem(SSL証明書)**を指定
秘密キーの指定 をチェックし、
秘密キー・ファイルの選択 を選択し、privkey.pem(秘密し ) を指定
上記設定後、証明書の追加 をクリックし、証明書が追加されました。
2. リスナーの変更
続いて、リスナーを設定してSSLの使用を有効化します。画面左のリソース からリスナーをクリックし、既存のリスナーを選択し編集します。
SSLの使用 をチェックし、ポート443 であること、
[証明書名] が先の**証明書の追加(例 lb-ssl-cert)**で入力した名前になっていることを確認し、
リスナーの更新 をクリックし、リスナーでSSLを使えるようにします。
3. セキュリティリストにポート追加
最後にセキュリティリストのイングレス・ルールに80ポートに加えて、443ポートの許可を追加します。こちらの設定も忘れずに!!
動作確認
それではブラウザからロードバランサへリクエスト(例) https://lb.cocotaro.com)します。ブラウザは Google Chrome を使用
HTTPSでの動作が正常に処理されており、ブラウザのURL表示部に鍵マークが表示されました。鍵マークをクリックするとセキュアな接続が行われている旨のメッセージが表示され、証明書が有効になっていることが確認できました。