如何排查 Amazon MQ 代理连接问题?

2 分钟阅读
0

我无法使用 Web 控制台或线级终端节点连接到我的 Amazon MQ 代理。我该如何解决此问题?

简短描述

发生 Amazon MQ 代理连接问题可能有多种原因,并可能导致多种类型的错误。以下是 Amazon MQ 返回连接相关错误的最常见原因:

  • 本地防火墙和路由表配置错误
  • 安全组和网络访问控制列表(NACL)配置错误
  • 连接到错误的端口号
  • DNS 解析问题
  • 不支持的 SDK 客户端
  • 代理可见性设置错误
  • SSL/TLS 配置错误
  • 代理终端节点证书过期

以下是出现代理连接问题时 Amazon MQ 可能返回的一些错误消息的示例:

  • SSLHandshakeException
  • JMSException
  • UnknownHostException
  • SocketTimeoutException

解决方法

要排查 Amazon MQ 代理连接问题,请执行以下操作。

验证本地防火墙和路由表的配置是否正确

对于可公开访问的代理

请确认以下事项:

  • 您的应用程序可以访问互联网。
  • 您的本地防火墙和路由表允许公有互联网流量。
  • 您的子网 NACL 和代理的安全组允许通过 Amazon MQ 支持的端口进行通信。
  • 您的 Amazon Virtual Private Cloud(Amazon VPC)中的代理位于公有子网中,默认路由到互联网网关。有关更多信息,请参阅 Amazon VPC 用户指南中的启用互联网访问

对于私有代理

请确认以下事项:

  • 已正确设置与您的 Amazon MQ 代理关联的 AWS 云服务特定配置。
  • 您的本地防火墙和路由表允许任何关联的虚拟专用网络(VPN)之间的入站和出站流量。
  • 您的子网 NACL 和代理的安全组允许通过 Amazon MQ 支持的端口进行通信。

测试您的 Amazon MQ 代理的网络连接

按照 Amazon MQ 开发人员指南中我无法连接到我的代理 Web 控制台或终端节点的步骤 5 中的说明进行操作。

**注意:**如果 nslookup 命令请求超时,或者命令输出的答案部分中没有值,请执行以下操作:

  • 清除本地 DNS 缓存。
  • 重新启动本地联网设备和客户端。
  • 验证您的本地 DNS 服务器配置是否正确。

确认您使用的是受支持的 SDK 客户端。

确保您使用的是与您正在使用的代理引擎兼容的最新 SDK 客户端实现。

对于适用于 ActiveMQ 的 Amazon MQ,您必须使用 AMQP 1.0 协议。对于适用于 RabbitMQ 的 Amazon MQ,您必须使用 AMPQ 0-9-1 协议。

确保您使用 SSL/TLS 与 AWS 资源进行通信

**注意:**Amazon MQ 目前不支持双向传输层安全性(TLS)身份验证。

使用不正确的 SSL/TLS 版本和不支持的密码套件会导致 SSL 错误。有关更多信息,请参阅 Amazon MQ 开发人员指南中的 Amazon MQ 中的数据保护

有关 RabbitMQ 和 ActiveMQ 支持的密码的列表,请参阅 Amazon MQ 开发人员指南中的传输中加密

**注意:**某些客户端库要求显式激活 SSL。以下是针对 Java 和 Ruby 编程语言显式激活 SSL 的示例。

(Java)显式 SSL 激活码示例

ConnectionFactory factory=new ConnectionFactory();
factory.useSslProtocol()

(Ruby)显式 SSL 激活码示例

conn = Bunny.new(:tls => true, :verify_peer  => false)

验证您的 Amazon MQ 代理终端节点证书是否为最新

有关更多信息,请参阅 Amazon MQ 开发人员指南的 SSL 例外部分。

有关如何判断 Amazon Trust Services Certificate Authorities(CA)是否在您的信任存储中的说明,请参阅以下文章:如何为 AWS 迁移到自己的证书颁发机构做好准备


AWS 官方
AWS 官方已更新 2 年前