harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

infra Load Balancing network web

haproxyを試す 3.SSLリバースプロキシを設定してみる

投稿日:2015年5月14日

Last Updated on 2021年7月4日 by かんりにん

 
HAProxyにてSSLリバースプロキシを設定してみるテスト。
設定環境はAWS EC2にてRightImageのCentOS6を使用しました。
HTTP/80については設定済みとなっている前提でメモってます。

参考:お世話になっております。

Ver1.5 マニュアル
SSLに関するパラメータが多数あり、かつ分散しているので要熟読!
Using SSL Certificates with HAProxy

Contents

テスト用SSL証明書

動作確認だけできればオッケーなので、opensslのテスト用証明書を。

	/etc/pki/tls/test-certs.crt

テスト設定

1.globalセクションにSSLプロキシ全体の動作の設定を。

global
    maxsslconn  256                     SSLコネクションの接続最大数を指定。   
    tune.ssl.default-dh-param   2048  公開鍵の鍵長の指定。2048bitで。

2.フロントエンドにssl-proxyのエントリを追加

frontend ssl-proxy
    bind    *:443 ssl crt   /etc/pki/tls/test-certs.crt  ポート、および証明書の指定
    mode    http                                         バックエンド側のプロトコルの指定、httpでOK
    default_backend         static                       デフォルトのバックエンド、こちらはhttpで指定しているエントリと同じでOK

設定適用

– haproxyプロセスの再起動

 
	# /etc/init.d/haproxy restart

– AWS セキュリティグループの設定追加

今回はAWS EC2を使用しているので、該当するセキュリティグループで443を開放しておきます。

動作確認

ポートの確認、およびhaproxy.logの確認

– netstatでの確認

 
	# netstat -ln | grep 443
	tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN

– ログ確認(haproxy.log)

1.SSLプロキシ有効時のプロセス起動ログ

Jun 10 11:14:06 ip-172-16-3-216 haproxy[1543]: Proxy main started.
Jun 10 11:14:06 ip-172-16-3-216 haproxy[1543]: Proxy ssl-proxy started.
Jun 10 11:14:06 ip-172-16-3-216 haproxy[1543]: Proxy static started.

2.ログ確認(haproxy.log)アクセスログ

実はアクセスログではソースのポートがhttpかhttpsかを判別する材料がなかった(詳しくログ設定のパラメータを調べればあるのかも?)。
しかしながら、frontendセクションで指定したエントリ名がログに反映されており、このエントリ名でhttpsでのアクセスを確認することができた…

通常のhttpでのアクセスログ

May 14 11:16:31 localhost haproxy[1544]: 198.51.100.216:50831 [14/May/2015:11:16:30.208] main static/dev-web01 77/0/2/1301/1552 200 37258 - - ---- 5/5/1/1/0 0/0 "GET / HTTP/1.1"
May 14 11:16:32 localhost haproxy[1544]: 198.51.100.216:50831 [14/May/2015:11:16:31.761] main static/dev-web01 821/0/3/7/831 200 191 - - ---- 5/5/0/0/0 0/0 "GET /favicon.ico HTTP/1.1"

httpsでのアクセスログ

May 14 11:19:12 localhost haproxy[1544]: 198.51.100.216:50880 [14/May/2015:11:19:11.038] ssl-proxy~ static/dev-web01 25/0/3/1286/1476 200 37258 - - ---- 2/1/0/1/0 0/0 "GET / HTTP/1.1"
May 14 11:19:12 localhost haproxy[1544]: 198.51.100.216:50880 [14/May/2015:11:19:12.514] ssl-proxy~ static/dev-web01 399/0/3/8/410 200 191 - - ---- 2/1/0/1/0 0/0 "GET /favicon.ico HTTP/1.1"

ということで、課題をいくつか。

  • フロントエンド側で接続プロトコルによる判別ができるよう、ログ設定のパラメータを調べてみる。
  • しょうもないエラーとして、デフォルト証明書のためブラウザ側で制限がでたためセキュリティ保護されていない画像やファイルにリクエストされない、という初歩的なミスをやらかしてしまったorz
    →制限解除を行い、動作確認OK(汗 あたりまえだけど正規の証明書が要りますね。

動かすだけなら割と簡単ながら、SSLに関連したパラメータも多数あるので、機能の詳細についてボチボチやっていこうかなと。
 
 

 

-infra, Load Balancing, network, web
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

nagios snmp ディスク使用率表示スクリプトのカスタマイズ

  [pukiwiki] もともとcheck_snmp_storageを使用していたが、nagiosgraphでグラフを出力させるための perfdataの表示を、nagiosgraph側でパーティシ …

no image

オープンソースのWebロードバランサー(に使えるミドルウェア)をいろいろ調べてみる

  お客さんのWebシステムをハウジング環境からAWSへ移行するにあたり、一部のサイトにおいて仕様上ELBを使えない状況になってしまい、代替の方法を考える必要が出てきてしまった… ELB以外でロードバ …

no image

ssh バッチ処理用認証鍵の設定

  [pukiwiki]   *バッチ処理用認証鍵の設定 ”【参照サイト】” お世話になってます。 OpenSSH 日本語マニュアルページ http://www.unixuse …

no image

[Juniper]SRX220 コンフィグのバックアップメモ

今回はSRX220Hのコンフィグのバックアップを。 ちょこっとドキュメントを見てみたところ、SSGの時と異なり、SRX側から外部のリモートホストへのtftpが使えないっぽい? もうちょっと詳しく調査し …

[AWS] EC2からS3へのファイル転送時間をコマンド別に軽くレポート

  本日までに試した、EC2→S3へのファイル転送時間をコマンド別にそれぞれ簡単に比較・テストしてみたので、以下にまとめ。 それぞれ5回試してみたうちの、速度がもっとも速かったものを以下に記載。今後の …

宅麺