Ubuntu 16.04
 

HAProxy : SSL の設定
2016/06/07
 
HAProxy サーバーの SSL 設定です。
クライント - HAproxy サーバー間の通信が SSL 対応になります。( HAproxy - バックエンド間は通常通信 )
前項で例示した以下のような環境をベースに設定します。
       |
-------+-----------------------------------------------
       |
       +-------------------+--------------------+
       |10.0.0.30          |10.0.0.51           |10.0.0.52
 +-----+-----+     +-------+------+     +-------+------+
 | Frontend  |     |   Backend#1  |     |   Backend#2  |
 |  HAProxy  |     |  Web Server  |     |  Web Server  |
 +-----------+     +--------------+     +--------------+

[1] SSL 証明書を作成しておきます。
root@dlp:~#
cd /etc/ssl/private

root@dlp:/etc/ssl/private#
openssl req -x509 -nodes -newkey rsa:2048 -keyout haproxy.pem -out haproxy.pem -days 365

Generating a 2048 bit RSA private key
....................................................+++
writing new private key to 'haproxy.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
JP
   
# 国

State or Province Name (full name) [Some-State]:
Hiroshima
   
# 地域(県)

Locality Name (eg, city) []:
Hiroshima
   
# 都市

Organization Name (eg, company) [Internet Widgits Pty Ltd]:
GTS
   
# 組織名

Organizational Unit Name (eg, section) []:
Server World
   
# 組織の部門名

Common Name (eg, YOUR name) []:
www.srv.world
   
# サーバーのFQDN

Email Address []:
root@srv.world
   
# 管理者アドレス
root@dlp:/etc/ssl/private#
chmod 600 haproxy.pem

[2] HAProxy の SSL 対応設定です。
root@dlp:~#
vi /etc/haproxy/haproxy.cfg
# global セクションの中へ追記

global
      # プロセス毎の最大SSL接続数

    maxsslconn     256
      # Diffie-Hellman キーを 2048 ビットにする

    tune.ssl.default-dh-param 2048

# frontend セクションの中へ追記

frontend  http-in
    bind *:80
      # 待ち受けポートと証明書を指定

    bind *:443 ssl crt /etc/ssl/private/haproxy.pem

root@dlp:~#
systemctl restart haproxy

[3] 任意のクライアントからフロントエンドサーバーへ HTTPS アクセスして動作を確認してください。
 
Tweet