Haproxy-1.5.x SSL配置

简介:

一直使用haproxy-1.4版本代理, 不支持ssl配置,haproxy-1.5版本支持,于是更新了版本进行测试。所使用的证书文件,使用原apache ssl证书文件进行简单处理可以在haproyx上使用。   
本来想使用haproxy-1.4的穿透的,但是要后端服务器均要配置ssl,于是配置在了Haproyx-1.5上,实现ssl终端CA认证。本文出自:http://koumm.blog.51cto.com

1. 安装

1
2
3
4
5
6
7
8
9
10
11
12
13
# yum install pcre-devel openssl-devel -y 
 
# tar zxvf haproxy-1.5.3.tar.gz 
 
# cd haproxy-1.5.3 
 
# make TARGET=linux26 USE_STATIC_PCRE=1 USE_REGPARM=1 USE_LINUX_TPROXY=1 USE_OPENSSL=1 USE_ZLIB=1 ARCH=x86_64 
 
# make install PREFIX=/usr/local/haproxy 
 
# cd /usr/local/haproxy 
 
# mkdir conf

 

2. 准备pem证书文件

之前有配置过apache ssl CA认证配置文件,cer文件与key文件,pem文件就是将前面两个文件合并使用。

# cat my-server.cer my-server.key | tee my-server.pem   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
-----BEGIN CERTIFICATE----- 
 
MIID3zCCA0igAwIBAgIPBwACIBQBFAAAAAACFUN1MA0GCSqGSIb3DQEBBQUAMIIB 
 
JDENMAsGA1UEBh4EAEMATjEbMBkGA1UECB4SAEcAdQBhAG4AZwBkAG8AbgBnMRsw 
 
GQYDVQQHHhIARwB1AGEAbgBnAHoAaABvAHUxPTA7BgNVBAoeNABHAEQAQwBBACAA 
 
QwBlAHIAdABpAGYAaQBjAGEAdABlACAAQQB1AHQAaABvAHIAaQB0AHkxRzBFBgNV 
 
BAsePgBHAHUAYQBuAGcAZABvAG4AZwAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAg 
 
AEEAdQB0AGgAbwByAGkAdAB5MVEwTwYDVQQDHkgARwBEAEMAQQAgAEcAdQBhAG4A 
 
ZwBkAG8AbgBnACAAQwBlAHIAdABpAGYAaQBjAGEAdABlACAAQQB1AHQAaABvAHIA 
 
aQB0AHkwHhcNMTQwMTEzMTYwMDAwWhcNMTkwMTMwMTYwMDAwWjCBrjENMAsGA1UE 
 
Bh4EAEMATjEPMA0GA1UECB4GbXdTV3cBMQ8wDQYDVQQHHgZtd1PjXgIxKTAnBgNV 
 
BAoeIG0LbWZ+z21OXwBT0VM6e6F0BlnUVFhPGk /hYG9OLV/DMSkwJwYDVQQLHiBt 
 
C21mfs9tTl8AU9FTOm0LbWZZJ1OmADEANAAwADFbpDElMCMGA1UEAx4cADEAOQAy 
 
AC4AMQA2ADgALgAyADMAMAAuADgANTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC 
 
gYEAz6XQgc /UBi/LtJh1BXTGxAyuWZY0nfkzPlv8cf2bRCMKadnM +iJ9PKv8mnpU 
 
TgKe6+c5zjqy+sTk6KEYVMMROY4InrykZY /7tA +dk+lqECU+fQ+bNAzLh5yPp6Ni 
 
2KzeG1V6 /tF9t7syz8UWy6Bxgvdg3gu +M9vcpZUaD3NjsnECAwEAAaOBhTCBgjAf 
 
BgNVHSMEGDAWgBR3QwkQ9xWLOrAR0kx7B5QE8BRURjAdBgNVHQ4EFgQUUN8BHs4A 
 
rNrjCV9uSaeMw0 /Fw/8wCwYDVR0PBAQDAgQwMBYGBSpWCwcBBA0xC4AJMjAxNDAx 
 
MTQxMBsGBSpWFQEDBBIwMDcxMTIwMTQwMTE0Njg2NDkwDQYJKoZIhvcNAQEFBQAD 
 
gYEAeKrIQ0u1cmgUz8qwW07VF1s6q+fKJf6OJnRDWshsG7ZRSJH2rZx7oohpZQJk 
 
DUpLOGbvplXGFgyXCeQYyJSiStis0Ef6Jr1Y3iOjIrn7zASCu9EjuUSCreyF7w8c 
 
4e4At2IMrUUTo+UZAiYRfqfMKpP7gYUY0LNmq2AEDbU4Fb0= 
 
-----END CERTIFICATE----- 
 
-----BEGIN RSA PRIVATE KEY----- 
 
MIICXQIBAAKBgQDPpdCBz9QGL8u0mHUFdMbEDK5ZljSd+TM+W /xx/ZtEIwpp2cz6 
 
In08q /yaelROAp7r5znOOrL6xOTooRhUwxE5jgievKRlj/u0D52T6WoQJT59D5s0 
 
DMuHnI+no2LYrN4bVXr+0X23uzLPxRbLoHGC92DeC74z29yllRoPc2OycQIDAQAB 
 
AoGBALIBDiZJ+BM5o+H0E9USj1X /HPM1fXOy7gfWKSm64wBdHY8yI7KGIGADe68d 
 
kOmy+3N1K6urzESGx0jY2JfJBRiKR3QW+fEL5UBhj /PC5Nj9OMxwEK0WqYlfhivx 
 
EpPycuwKhDN7aYcGJIK /J38j4Q8G383wDev1Sl9beLRoqs +FAkEA+LtkdOVU8hfa 
 
Xx44Tl6PxsY25LWunjuoUu6KZOWLvsAJK+CGV91oZAJk+QwXIZj8tDjPAGrcvHMM 
 
cENwrvFWuwJBANW3GKsHELMTzJumKUXlSPDlU5xGn7H2PQOc+FaYuinK6K94E55t 
 
E7MN6Oe+1avOTLYlRVsv2klPUkK1DlrOxsMCQBEFmgFZ9G9A7KPXyJisZgB /biBG 
 
wrV3dbR /OJ9hCig6siX7jpYSw +McOtbEWgzlkF2xCZGIvqRy5yYDp4GBaKMCQQDQ 
 
0F+X7AVTE8tdYZL+KjOEvG1fSloKpg+jkiHLatqqrwl /ORHiP615y +N /W6Smg6HM 
 
bso /eJgN/STg7MsjytnFAkAVwZMhaoIWIocbyoA3eUQVIrUDynDMq27TDFwltvaL 
 
ihOkwBYuzDujgOBLwY+pLg6SqphDhgP92OCg+VVqty02 
 
-----END RSA PRIVATE KEY-----

 

3. 创建配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# vi /usr/local/haproxy/conf/haproxy.cfg 
global 
log 127.0.0.1 local0 
maxconn 65535 
chroot  /usr/local/haproxy 
uid 99 
gid 99 
stats socket  /usr/local/haproxy/HaproxSocket  level admin 
daemon 
nbproc 1 
pidfile  /usr/local/haproxy/haproxy .pid 
#debug 
tune.ssl.default-dh-param 2048
defaults 
log 127.0.0.1 local3 
mode http 
option httplog 
option httplog clf 
option httpclose 
option dontlognull 
option forwardfor 
option redispatch 
retries 2 
maxconn 2000 
balance  source 
#balance roundrobin 
stats uri  /haproxy-stats 
stats refresh 10s 
timeout client 60s 
timeout connect 9s 
timeout server 30s 
timeout check 5s
listen TEST_APP_Cluster 
bind *:80 
mode http 
option httpchk GET  /test .html HTTP /1 .0\r\nHost:192.168.10.180 
server node01 192.168.0.100:100 weight 3 check inter 2000 rise 2 fall 1 
server node02 192.168.0.101:100 weight 3 backup check inter 2000 rise 2 fall 1
listen TEST_APP_SSL 
bind *:443 ssl crt  /usr/local/haproxy/conf/my-server .pem 
reqadd X-Forwarded-Proto:\ https 
mode http 
option httpchk GET  /test .html HTTP /1 .0\r\nHost:192.168.10.180 
server node01 192.168.0.100:100 weight 3 check inter 2000 rise 2 fall 1 
server node02 192.168.0.101:100 weight 3 backup check inter 2000 rise 2 fall 1
listen stats_auth 0.0.0.0:91 
stats  enable 
stats uri  /admin 
stats realm  "HA_CONSOLE" 
stats auth admin:123456 
stats hide-version 
stats refresh 10s 
stats admin  if  TRUE

启动端口截图

image

 

4. 配置要点

由于证书采用2048长度配置,默认配置文件会报错,加上tune.ssl.default-dh-param 2048参数后,问题解决,采用pem格式的证书还可以通过haproxy-1.4+stunnel方式实现ssl功能。





本文转自 koumm 51CTO博客,原文链接:http://blog.51cto.com/koumm/1539692,如需转载请自行联系原作者

相关文章
|
2月前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
130 3
|
2月前
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
204 3
|
2月前
|
安全 应用服务中间件 网络安全
49.3k star,本地 SSL 证书生成神器,轻松解决 HTTPS 配置痛点
mkcert是一款由Filippo Valsorda开发的免费开源工具,专为生成受信任的本地SSL/TLS证书而设计。它通过简单的命令自动生成并安装本地信任的证书,使本地环境中的HTTPS配置变得轻松无比。mkcert支持多个操作系统,已获得49.2K的GitHub Star,成为开发者首选的本地SSL工具。
199 10
|
3月前
|
安全 应用服务中间件 Shell
nginx配置https的ssl证书和域名
nginx配置https的ssl证书和域名
|
3月前
|
Linux 应用服务中间件 Shell
利用 ACME 实现SSL证书自动化配置更新
【10月更文挑战第11天】多项式承诺原理是密码学中的重要工具,允许证明者向验证者承诺一个多项式并证明其某些性质。Kate多项式承诺是一种知名方案,基于有限域上的多项式表示,通过生成和验证简洁的证明来确保多项式的正确性和隐私。其安全性基于离散对数假设。应用场景包括区块链中的零知识证明和可验证计算,以及多方计算和身份认证协议。在区块链中,Kate多项式承诺可用于保护隐私币和智能合约中的敏感信息。
220 2
|
3月前
|
弹性计算 应用服务中间件 网络安全
ECS服务器使用:SSL证书安装、配置和问题定位指南
本文简要介绍了SSL证书的生成与部署方法,包括使用OpenSSL生成自签名证书和从CA获取证书的步骤,以及在Apache和Nginx服务器上的配置方法。此外,还提供了测试证书是否生效的方法和常见问题的解决策略,帮助确保证书正确安装并解决调试过程中可能遇到的问题。
285 0
|
5月前
|
jenkins 应用服务中间件 持续交付
如何配置 Nginx 作为 Jenkins 的反向代理并启用 SSL 加密
如何配置 Nginx 作为 Jenkins 的反向代理并启用 SSL 加密
306 8
|
5月前
|
负载均衡 前端开发 应用服务中间件
使用Nginx配置SSL以及部署前端项目
本文介绍了如何使用Nginx配置SSL证书以启用HTTPS,并展示了如何通过Nginx部署前端项目,包括配置SSL证书、设置代理和负载均衡的示例。
169 2
|
6月前
|
应用服务中间件 网络安全 nginx
使用Nginx Proxy Manager配置Halo的反向代理和申请 SSL 证书
本文引导如何用Nginx Proxy Manager (NPM)配置Halo的反向代理与SSL证书。NPM简化了Nginx的配置流程,适合无Nginx基础的用户。安装NPM无需额外安装Nginx,避免端口冲突。通过`docker-compose.yaml`启动NPM服务,并映射必要的端口。配置Halo反向代理需登录NPM面板,添加代理主机,设置域名、转发IP等参数。NPM支持自动申请与续期SSL证书,确保网站安全访问。更多Halo安装细节,请参考[如何在Linux云服务器上通过Docker Compose部署安装Halo](https://zhangfeidezhu.com/?p=631).
390 0
使用Nginx Proxy Manager配置Halo的反向代理和申请 SSL 证书
|
5月前
|
存储 网络安全 Windows
【Azure 云服务】为Azure云服务配置上自签名的SSL证书步骤
【Azure 云服务】为Azure云服务配置上自签名的SSL证书步骤