7.5.3. 创建 SSL 路由


要在 OpenShift 集群外部启用客户端应用程序以附加到代理,您需要为代理 Pod 创建 SSL 路由。您只能向外部客户端公开支持 SSL 的路由,因为 OpenShift 路由器需要 Server Name Indication(SNI)向正确的服务发送流量。

当您使用应用程序模板在 OpenShift Container Platform 上部署代理时,您可以使用 AMQ_PROTOCOL 模板参数在以逗号分隔的列表中指定代理使用的消息传递协议。可用选项包括 amqpmqttOpenwirestomphornetq。如果没有指定任何协议,则所有协议都可用。

对于代理使用的每个消息传递协议,OpenShift 会在代理 Pod 上公开专用端口。另外,OpenShift 会自动创建 多个协议端口。OpenShift 外部的客户端应用程序始终使用多个,所有协议端口都连接到代理,无论它们正在使用的支持的协议是什么。

与所有协议端口的连接都是通过 OpenShift 自动创建的服务,以及您创建的 SSL 路由。代理 Pod 中的无头服务提供了对其他协议特定端口的访问,该端口没有他们自己的服务和路由,供客户端直接访问。

OpenShift 为各种 AMQ Broker 传输协议公开的端口显示在下表中。代理侦听 OpenShift 集群中流量的非 SSL 端口。如果您使用基于 SSL 的(即 *-ssl.yaml)模板创建部署,代理会侦听来自 OpenShift 之外的客户端流量的 SSL 启用端口。

Expand
表 7.2. AMQ Broker 传输协议的默认端口
AMQ Broker 传输协议默认端口

所有协议(OpenWire、AMQP、STOMP、MQTT 和 HornetQ)

61616

所有协议 -SSL(OpenWire AMQP、STOMP、MQTT 和 HornetQ)

61617

AMQP

5672

AMQP(SSL)

5671

MQTT

1883

MQTT (SSL)

8883

STOMP

61613

STOMP(SSL)

61612

以下是在代理 Pod 上创建 SSL 路由时需要注意的一些事项:

  • 当您创建路由时,请将 TLS 终止 设置为 Passthrough 转发到 AMQ Broker 的所有通信,而无需 OpenShift 路由器解密并重新发送它。

    注意

    常规 HTTP 流量不需要 TLS 透传路由,因为 OpenShift 路由器使用 HAProxy,即 HTTP 代理。

  • 当为 SSL 连接设置代理 URL 时,外部代理客户端必须指定 OpenShift 路由器端口(443)。当客户端连接指定 OpenShift 路由器端口时,路由器决定了客户端流量应定向到的代理 Pod 上的相应端口。

    注意

    默认情况下,OpenShift 路由器使用端口 443。但是,根据为 ROUTER_SERVICE_HTTPS_PORT 环境变量指定的值,路由器可能会配置为使用不同的端口号。如需更多信息,请参阅 OpenShift Container Platform 路由

  • 在 Pod 重启或升级时,在代理 URL 中包含故障转移协议会保留客户端连接,或者在路由器上发生中断。

    前面的两个设置都如下例所示。

    ...
    factory.setBrokerURL("failover://ssl://<broker-pod-route-name>:443");
    ...
    Copy to Clipboard Toggle word wrap

其他资源

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat