我無法使用 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 移到其自有的憑證授權機構。