Haproxy 多域名证书配置

发布 : 2019-02-16

Haproxy 服务启动 SSL

如果没有启用SSL,参考: 《编译 Haproxy 支持 SSL》

[root@GZ-P-L-HA-11 ~]# haproxy -vv | grep OpenSSL
Built with OpenSSL version : OpenSSL 1.1.1a 20 Nov 2018
Running on OpenSSL version : OpenSSL 1.1.1a 20 Nov 2018
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3

SSL证书合并

像Nginx配置ssl有两个证书文件,一个ssl_certificate公钥 与 ssl_certificate_key私钥。
Haproxy配置ssl需要将这两个证书文件合并到一个文件。

cat api.linuxhub.cn_bundle.crt api.linuxhub.cn.key | tee api.linuxhub.cn.pem

Haproxy配置

配置很简单

bind *:443 ssl crt /etc/haproxy/ssl/api.linuxhub.cn.pem

多个域名

bind *:443 ssl crt /etc/haproxy/ssl/api.linuxhub.cn.pem crt /etc/haproxy/ssl/www.linuxhub.cn.pem

样例

############## web 网站 #################
frontend web_in

bind *:80

######## https 域名证书配置 #############
bind *:443 ssl crt /etc/haproxy/ssl/api.linuxhub.cn.pem crt /etc/haproxy/ssl/www.linuxhub.cn.pem

######## acl策略配置 #############
acl ZEZE_WWW hdr_beg(host) www.linuxhub.cn
acl ZEZE_API hdr_beg(host) api.linuxhub.cn

######### acl策略匹配相应 #############
use_backend zeze_api if ZEZE_API
use_backend zeze_www if ZEZE_WWW
default_backend zeze_api

backend zeze_api
mode http
option forwardfor
balance roundrobin
timeout server 60s
option httpchk HEAD /stat
server GZ-P-L-JAVA-11 192.168.10.11:8081 check
server GZ-P-L-JAVA-12 192.168.10.12:8081 check

backend zeze_www
mode http
option forwardfor
balance roundrobin
timeout server 60s
option httpchk HEAD /stat
server GZ-P-L-JAVA-11 192.168.10.11:8082 check
server GZ-P-L-JAVA-12 192.168.10.12:8082 check

其它

另外HAProxy SNI 也可以实现haproxy ssl 的代理。
大概工作流程:当HAProxy通过HTTPS流量时,它简单地将原始TCP流发送到具有证书并处理加密和解密的后端。

本文作者 : 泽泽
原文链接 : http://www.linuxhub.cn/2019/02/16/conf-haproxy-ssl.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹