如何對 Amazon MQ 代理程式連接問題進行疑難排解?

上次更新日期:2022 年 4 月 7 日

我無法使用 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 開發人員指南》中步驟 5 無法連接到我的代理程式 Web 主控台或端點的說明進行。

注意:如果 nslookup 命令請求逾時,或者命令輸出的回答部分中沒有值,請執行以下操作:

  • 清除您的本機 DNS 快取。
  • 重新啟動本機聯網設備和用戶端。
  • 驗證您的本機 DNS 伺服器正確配置。

驗證您使用的是支援的 SDK 用戶端

確保您使用的是與您正在使用的代理程式引擎相容的最新 SDK 用戶端建置。

針對用於 ActiveMQ 的 Amazon MQ,您必須使用 AMQP 1.0 協定。針對用於 RabbitMQ 的 Amazon MQ,您必須使用 AMPQ 0-9-1 協定。

確保您使用 SSL/TLS 與 AWS 資源通訊

注意: Amazon MQ 目前不支援 Mutual Transport Layer Security (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 憑證授權機構 (CAs) 的説明,請參閲以下文章: 如何準備將 AWS 移到其自有的憑證授權機構


此文章是否有幫助?


您是否需要帳單或技術支援?