AWSでのSSL通信はELB/ロードバランサをスルーさせて、WebサーバーまでSSLの通信を行う場合の設定例です。Webサーバーの負荷分散や冗長構成での運用が出来ます。
- アマゾンELBはSSL/TCP ( 443 ) をスルーさせる設定
- SSLのサーバー証明書は、Webサーバー側にインストール
- 終端のウェブサーバーまでの全経路でSSL通信
使用するもの
- AWS ELB ( ロードバランサー )
- Powered BLUE Web サーバー ( AWS / EC2 )
- AWS上にPowered BLUE をセットアップする ( AMI )
Powered BLUE Webサーバーの設定
Amazon AWSに登録のAMIからPowered BLUE サーバーをセットアップします。VPCなどで2台のWebサーバーを構築します
- B860-LB1
- B860-LB2
Webサーバーの設定
それぞれのWebサーバーへホームページのデータを入れます。Powered BLUE サーバーは、ベースOSとして CentOS 6.x (64bit) で動作します。CentOS対応のWebアプリケーションをインストール&運用することも出来ます。
B860-LB1 ( https Web サーバーNo1 )
B860-LB1 ( https Web サーバーNo2 )
ポイント
- 2台のWebサーバーに、同一のSSLサーバー証明書を入れます
同一のSSLのサーバー証明書を作成します(1台目のhttpsサーバー)
- 「自己署名デジタル証明書の作成」 または 「署名リクエストの作成」 で作成します
自己署名デジタル証明書の作成の場合
- 「自己署名デジタル証明書の作成」から必要事項を記入して、SSLを有効にします
署名リクエスト(CSR)の作成の場合
- 必要事項を記入して、 「署名リクエストの作成」 ボタンを押します
- 作成された 「署名リクエスト」 ファイルを保存
- この 「署名リクエスト」 ファイル signig-request.txt を、公的なSSLサーバー証明書の発行機関へ送付
- 公的機関で発行された、サーバー証明書を 「インポート」 します
サーバー証明書&秘密鍵のエクスポート(1台目のhttpsサーバー)
- 1台目のリバースプロキシサーバーに登録されている、「サーバー証明書&秘密鍵」が含まれているssl-certificate.txtを「エクスポート」
サーバー証明書&秘密鍵のインポート(2台目以降のhttpsサーバー)
- 1台目のWebサーバーから取り出した「証明書&秘密鍵」が含まれている「ssl-certificate.txt」を2台目以降のWebサーバーへインポート
- 1台目のサーバー証明書と秘密鍵のコピーが2台目にインストールされます
AWS ELB (Elastic Load Balancing ) の作成
- ロードバランサ名の設定 (例 LB-80 )
- ロードバランサの運用ゾーンを選択(例 VPC-19fdd9 (10.0.0.0/16)
- ロードバランサのプロトコル選択(例 プロトコル TCP / ポート443 )
- インスタンスのプロトコル選択(例 プロトコル TCP / ポート443 )
- サブネットの選択(適用するサブネット)
セキュリティグループの設定
ELBからWeb(443)のヘルスチェックの設定
- TCP 443へのping
ELBで負荷分散させるEC2インスタンスの選択
- B860-LB1 ( Web サーバーNo1 )
- B860-LB2 ( Web サーバーNo2 )
ヘルスチェックの状況
- ヘルスチェック TCP=443
- ステータス InService ( https サーバーの正常動作)
- アベイラビリティ-ゾーン 正常?(はい)
アクセス
Webサーバーには、ELBのDNSのAレコードでアクセスします
例 https://LB-80-209694.ap-xxxxxxx.com/
デモサーバー
Powered BLUEの デモサーバー
基本操作 / リバースプロキシ / SSLクライアント認証 などのデモが出来ます