为 HAProxy 配置 SSL/TLS

更新时间:2024-11-21 来源:pct 作者:pct

ThingWorx HA 高可用集群中 HAProxy 的 SSL/TLS 配置模式与证书要求

针对 ThingWorx 高可用(HA)集群架构,解析 HAProxy 负载均衡器的 SSL/TLS 部署规范。说明为何必须采用外部或内部 SSL 终止模式,以及在无法使用 passthrough(透传)模式下,如何处理证书文件以满足基于路径的路由需求,提供务实的集群安全配置参考。

使用 ThingWorx HA 群集时,可以为 HAProxy 配置 SSL 或 TLS。

可以将 HAProxy 设置为使用外部 SSL 和内部 SSL。您必须提供证书文件。不能使用 passthrough SSL,因为 ThingWorx 需要请求对象的访问权限来进行基于路径的路由。有多个选项可用于在 HAProxy 中配置 SSL。以下内容仅用于参考;
有关详细信息,请参阅 [https://cbonte.github.io/haproxy-dconv/2.0/configuration.html]

从客户端到 HAProxy 的外部 SSL

global 配置中,您可以为证书和私钥设置可选的默认位置。在前端配置中,您可以配置密码以及支持的 TLS 级别。例如:

global
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL). This list is from:
# https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
# An alternative list with additional directives can be obtained from
# https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
ssl-default-bind-options no-sslv3

前端部分是传入端点的位置。应该在此配置要使用的绑定端口和证书。有关绑定配置的详细信息,请参阅 https://cbonte.github.io/haproxy-dconv/2.0/configuration.html#5.1。

例如:

frontend ft_web
bind *:8443 ssl crt /certs/haproxy.pem name sslweb
如果已在 ThingWorx HA 环境中安装 ​ThingWorx Flow​,则必须绑定端口和证书。

从 HAProxy 到应用程序的内部 SSL

将针对每个后端服务器配置内部 SSL。每台服务器都可以采用不同的设置。在以下示例中,所有平台服务器均支持 SSL,并在端口 8443 上接收请求。已将服务器端点配置为指向该位置并使用 SSL。此示例使用自签名证书,因此,请验证其是否已设置为 ​none​。有关服务器配置选项的详细信息,请参阅 https://cbonte.github.io/haproxy-dconv/2.0/configuration.html#5.2

backend platform
 server platform1 platform1:8443 ssl verify none
 server platform2 platform2:8443 ssl verify none

ThingWorx Flow 的示例

如果已在 ThingWorx HA 环境中安装 ​ThingWorx Flow​,请添加后端 ThingWorx Flow 配置信息:

server nginx **<NGinx\_IP>**:443 check ssl verify none

创建自签名证书

例如:

cat haproxy.crt haproxy.key >> /certs/haproxy.pem
chmod 755 /certs/haproxy.pem && \\

hingWorx Flow 的示例

如果已在 ThingWorx HA 环境中安装 ​ThingWorx Flow​,请执行以下操作:

1.创建 / 下包含所有必要权限的 certs 文件夹

2.运行以下命令来创建证书:

**sudo openssl req -newkey rsa:2048 -nodes -x509 -days 365 -keyout haproxy.key -out haproxy.crt -subj “/CN=**<Load\_Balancer\_Host>**” && sudo cat haproxy.crt haproxy.key >> /certs/haproxy.pem

此命令将在 /etc/haproxy 文件夹下创建 haproxy.crt 和 ​haproxy.cfg​,在 /certs 文件夹下创建 ​haproxy.pem​。

使用 Docker

您可以使用官方 HAProxy 容器并在 certshaproxy.cfg 文件中安装。内部 HAProxy 容器支持以下配置:

image.png

证书应安装到 /certs 文件夹:

haproxy:

image: artifactory.rd2.thingworx.io/twxdevops/tw-lb-haproxy:latest
container_name: haproxy
ports:

  • 9100:8080
  • 9143:8443
  • 1936:1936
    environment: *haproxy-env
    volumes:
  • certs:/certs

原文链接:https://support.ptc.com/help/thingworx/platform/r9/zh_CN/index.html#page/ThingWorx/Help/ThingWorxHighAvailability/configuringssltlsforhaproxy.html

推荐阅读

有用
分享
无用
反馈
返回顶部
0 个回答
2315 次浏览
立即探索,帮您快速寻找适合您的SSL数字证书 申请SSL证书
免费SSL证书 - SSL证书申请与HTTPS加密平台 | TopSSL
提供免费与付费SSL证书申请
关注 TopSSL 公众号, RSS订阅SSL资讯与技术支持

2004-2026 © 北京传诚信  版权所有 | TopSSL 提供免费SSL证书申请、HTTPS加密部署及企业级SSL证书服务,支持网站安全连接、证书安装与浏览器信任验证。  北京市朝阳区鹏景阁大厦16层

技术协助:wo@topssl.cn 企业咨询:vip@topssl.cn