分享最新优惠信息
购买主机更加划算

在HAProxy中配置CA SSL证书的简单过程

HAProxy是一种广泛使用的、可靠的、高性能的反向代理,它为TCP和HTTP应用程序提供高可用性和负载平衡能力。默认情况下,它是使用OpenSSL编译的,因此支持SSL终端,从而使网站/应用程序堆栈环境能够加密和解密“Web 入口服务器”或应用程序访问网关服务器和客户端应用程序之间的流量。

HAProxy

在本文中,小编简单介绍在HAPorxy中配置CA SSL证书的简单过程。注意:在操作之前,默认你已从CA收到证书并准备在HAProxy服务器上安装和配置它。

准备好的文件有:

  • CA 证书。
  • 中间证书也称为捆绑或链。
  • root CA(如果可用的话)。
  • 私钥。

创建PEM格式的SSL证书文件

在HAProxy中配置CA证书之前,需要了解HAProxy需要一个.pem文件,该文件应包含上述所有文件的内容,按以下顺序连接:

  • .key结尾的私钥(可以出现在文件的开头或结尾)。
  • 后面跟SSL证书文件(通常以.crt结尾)。
  • 然后是CA-Bundle(通常以.ca-bundle结尾)。
  • root CA(如果可用)。

要创建.pem文件,请进入包含你证书文件的目录,例如~/Downloads,然后像这样运行cat 命令(根据情况相应地替换文件名):

$ cat example.com.key STAR_example_com/STAR_example_com.crt STAR_example_com/STAR_example_com.ca-bundle > example.com.pem

在HAProxy中配置PEM SSL证书

接下来,使用scp命令将刚刚创建的.pem证书文件上传到HAProxy服务器,如下所示(将sysadmin192.168.10.24分别替换为远程服务器用户名和IP地址):

$ scp example.com.pem   sysadmin@192.168.10.24 :/home/sysadmin/

然后使用mkdir命令创建将存储证书.pem文件的目录并将文件复制到其中:

$ sudo mkdir -p /etc/ssl/example.com/ 
$ sudo cp example.com.pem /etc/ssl/example.com/

接下来,打开HAProxy配置文件并在前端侦听器部分下配置证书,使用ssl和crt参数:前者启用SSL终端,后者指定证书文件的位置。

frontend http_frontend
      mode http
      bind *:80
      bind *:443 ssl crt  /etc/ssl/example.com/example.com.pem alpn h2,http/1.1
     redirect scheme https code 301 if !{ ssl_fc }
      default_backend http_servers

某些版本的SSL/TLS不建议使用,因为其中发现了漏洞。要限制支持的SSL版本,可以添加ssl-min-ver参数,如下所示:

bind *:443 ssl crt  /etc/ssl/example.com/example.com.pem alpn h2,http/1.1   ssl-min-ver TLSv1.2

配置HAProxy以将HTTP重定向到HTTPS

为确保网站只能通过HTTPS访问,需要启用HAProxy以将所有HTTP流量重定向到HTTPS,以防用户尝试通过HTTP(端口 80)访问它。

将以下行添加到上述配置中:

redirect scheme https code 301 if !{ ssl_fc }
或者
http-request redirect scheme https unless { ssl_fc }

前端部分现在应该类似于此示例配置中的部分:

frontend http_frontend
      mode http
      bind *:80
      bind *:443 ssl crt  /etc/ssl/example.com/example.com.pem alpn h2,http/1.1  ssl-min-ver TLSv1.2
      redirect scheme https code 301 if !{ ssl_fc }
      default_backend   http_servers

backend http_servers
      mode http
      balance roundrobin
      option httpchk HEAD /
      http-response set-header X-Frame-Options SAMEORIGIN
      http-response set-header X-XSS-Protection 1;mode=block
      http-response set-header X-Content-Type-Options nosniff
      default-server check maxconn 5000
      server http_server1 10.2.1.55:80

保存配置文件并关闭它。

然后使用以下命令检查其语法是否正确:

$ sudo haproxy -f /etc/haproxy/haproxy.cfg -c

检查HAProxy配置

如果配置文件有效,请使用systemctl 命令重新加载 haproxy服务以获取配置中的最新更改:

$ sudo systemctl reload haproxy
检查HAProxy网站

总结

以上就是在HAProxy负载平衡器软件中配置SSL证书,相对来说还是比较简单的,如有不清楚的小伙伴可以参考上述教程进行设置。

众所周知,HAProxy比较适用于那些负载特大的Web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接,并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时通过它安装CA SSL证书还可以保护网站的安全。

未经允许不得转载:惠主机 » 在HAProxy中配置CA SSL证书的简单过程