ロードバランサー配下でSSLクライアント認証を行う(マルチAZ/HA対応)

ロードバランサ(LB )で負荷分散をして、SSLクライアント認証を行う例です。一般的なSSLオフロード構成ではロードバランサーでSSLセッションが終端します。今回はロードバランサーでSSLを終端させずに、ロードバランス先のWebサーバーまでSSL通信を行い、常時SSL化でのSSLクライアント認証を行う構成例です。SSLクライアント認証もWebサーバー側で行います。

ロードバランサーでSSLをオフロードしないため、クライアントからWebサーバーまでを常時SSL化及びSSLクライアント認証での運用が出来ます。SSLでのアクセス認証のログはWebサーバー側で取得出来ます。Amazon AWSやクラウド、VMwareやHyper-Vなどの仮想環境での運用に対応。冗長構成や拠点間のマルチAZでの運用構成も出来ます。

 

構築方針

  • ロードバランサーで、SSLをターミネートしない(LBではTCP 443からTCP 443への転送)
  • クライアントからWebサーバーまでの全経路で常時SSL通信(https)を行う
  • SSLサーバー証明書は、自己署名もしくはパブリックな証明書に対応
  • WebサーバーへCRL(失効リスト)を配布する
  • SSLクライアント認証は、Webサーバー側で行う
  • SSLクライアント認証のログは、Webサーバー側で取得する

 

使用した機器

  • 今回は各サーバーとも仮想アプライアンス(VMware版)を利用
  • 各サーバともGUIから、LB/CA/CRLの同期設定/SSLクライアント認証が簡単に出来ます
  • Webサーバーのデータを自動同期させます

LB-54-ssl

備考 Amazon AWS上でロードバランサー / CA / SSLクライアント認証を運用の場合

http://www.mubit.co.jp/products/blue/imgs/Powered-by-Amazon-Web-Services.jpg

AWSへ登録の Powered BLUE / AMI を利用できます

https://www.mubit.co.jp/sub/products/blue/img2/pb-vm-2.png

 

 

ロードバランサーの設定 ( KEMP ロードマスター )

  • ロードバランサーの管理 IP                     = 192.168.100.62
  • ロードバランサーの Virtual IP Address = 192.168.100.63 / load-balancer.mubit.com
  • 負荷分散先のWeb / CRL サーバー No1 = 192.168.100.58
  • 負荷分散先のWeb / CRL サーバー No2 = 192.168.100.73

kemp-lb5

 

ロードバランサー設定のポイント

  • SSL Acceleration をオフ (SSL通信をロードバランサでオフロードしない)
  • DNSサーバーにロードバランサー「192.168.100.63   /  load-balancer.mubit.com 」 を登録
  • 外部からのアクセスは https://load-balancer.mubit.com  となります

kemp-lb6

プライベートCA設定のポイント

CAからCRLの提供を許可するクライアントのWebサーバーを指定します ( 許可するIPアドレス )

 

  • 負荷分散先のWeb / CRL サーバー No1 = 192.168.100.58
  • 負荷分散先のWeb / CRL サーバー No2 = 192.168.100.73

ca-crl-1

 

Webサーバー側の設定のポイント ( 192.168.100.58 / 192.168.100.73 )

CRLの同期

  • CAからCRLを自動入手出来る設定をします ( 取得先CA  http://ca-server.mubit.com )

web-crl-1

証明書の登録

  • 負荷分散する2台のWebサーバーに、同一のSSLサーバー証明書&秘密鍵を登録します

SSLのサーバー証明書を作成します(1台目のWebサーバー)

  • 「自己署名デジタル証明書の作成」 または 「署名リクエストの作成」 で作成します

 

自己署名デジタル証明書の作成の場合(プライベートSSLサーバー証明書の場合)

  • 「自己署名デジタル証明書の作成」から必要事項を記入して、SSLを有効にします

web-ssl-1

 

署名リクエスト ( CSR ) の作成の場合(パブリックSSLサーバー証明書の場合)

公的なSSLサーバー証明書を利用の場合には、ブラウザへの警告メッセージ

「このWebサイトで提示されたセキュリティ証明書は、信頼された証明機関から発行されたものではありません」

を抑制することが出来ます

SSLのサーバー証明書は

  •  ドメイン認証証明書(DV:Domain Validation)
  •  組織認証証明書(OV:Organization Validation)
  •  EV証明書(EV:Extended Validation)

が登録出来ます

  • 必要事項を記入して、 「署名リクエストの作成」 ボタンを押します

csr-1

  • 作成された 「署名リクエスト」 ファイルを保存
  • この 「署名リクエスト」 ファイル signig-request.txt を、公的なSSLサーバー証明書の発行機関へ送付

signing-req-1

  • 公的機関で発行された、サーバー証明書を 「インポート」 します
  • 中間証明書のインポートにも対応しています

ssl-import-1

 

サーバー証明書&秘密鍵のエクスポート(1台目のWebサーバー)

  • 1台目のWebサーバーに登録されている、サーバー証明書&秘密鍵を「エクスポート」

ssl-export-1

 

サーバー証明書&秘密鍵のインポート(2台目以降のWebサーバー)

  • 1台目のWebサーバーから取り出した証明書&秘密鍵を2台目のWebサーバーへインポート
  • 1台目のサーバー証明書と秘密鍵のコピーが2台目にインストールされます

ssl-import-1

Let’s encrypt のSSLサーバー証明書を利用することも出来ます

 

WebページのSSLクライアント認証を設定

  • 1台目、2台目ともWebアクセス時の 「SSLクライアント認証」 を有効にします

ssl-cert-1

 

SSLクライアント認証時のアクセスコントロール

有効なSSLクライアント証明書を有している場合でも、Webサイト毎に各種のアクセスコントロールが設定出来ます
失効リスト(CRL)に関わらず、ただちにWebへのアクセス禁止を設定できます
SSLクライアント証明書を失効させることなく、Webへのアクセスを禁止できます

  • 組織や部門でのアクセス制限
  • 曜日や時間帯でのアクセス制限
  • 特定ユーザーでのアクセス制限
  • 端末を紛失したので、ただちにAさんのSSLクライアント証明書でのアクセスを禁止

SSLクライアント認証のログ

SSLクライアント認証時のアクセスログの出力先を指定出来ます。Webサーバー側でアクセスログを取得出来ます。

 

その他

  • Webサーバーに適宜データを入れます(ホームページデータなど)
  • Powered BLUE Private CAでSSLクライアント証明書を作成して、配布します

 

マルチAZ構成

複数拠点に設置のWebサーバーに対して冗長構成での運用構成です

https://www.mubit.co.jp/sub/products/blue/img2/pb-vm-2.png

  • WebサーバーA 東日本設置
  • WebサーバーB 西日本設置

マルチAZに対応のGSLB機能を持つロードバランサー(例 KEMP ロードマスター)などを利用して冗長構成で運用します。2台のWebサーバー間でWebデータを自動同期します。

https://www.mubit.co.jp/sub/products/blue/img2/ca-sync-1.png

 

デモサーバー

Powered BLUEの  デモサーバー

 

終わりに

SSLクライアント認証でWebサイトの認証を強化したい方、既存で運用のWebサイトへのアクセスに認証機能を導入したい方。デモ環境で試してみたい方や詳しい話を聞いてみたい方などは、ムービットの https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gif お問い合わせフォーム からご連絡ください。