我正在使用AWS ELB作爲入口點(在代理模式下),以便從其中流量進一步到達MQTT代理的位置後面的2個HAProxy-es之間進行負載平衡。HAProxy上的AWS ELB背後的TLS終止(tcp模式)
這些2 HAProxies負責客戶TLS終止(2方式TLS)。
證書是一種工作。我在兩臺服務器之間進行了本地安裝測試。我已經能夠使用雙向TLS進行發佈,正確地終止它,並將消息發佈到mqtt。將所有內容移至AWS時都會出現問題。
我正在使用自簽名根CA,中間CA,服務器證書和客戶端證書。使用橢圓曲線...
問題可能是由於服務器CN造成的。我認爲它必須與連接到像mosquitto_pub這樣的工具的主機名相同。
我得到的錯誤是TLS錯誤,只有調試 - > ssl握手失敗。不知何故,我無法產生更詳細的錯誤。使用openssl和s_client並調試最大調試輸出。哪些產生我ssl握手失敗。
我真的很感激任何提示/建議。
在此先感謝。
Tomaz
AWS ELB和HAProxy的提供非常相似的功能。你使用兩者的理由是什麼?爲什麼不讓ELB直接進入MQTT服務器?此外,我看不到你所指的錯誤信息 - 有沒有很多呢? – njh
@njh動機可能是OP所稱的「雙向TLS」 - 通過後向edd驗證客戶端證書。 ELB不直接支持這一點,它必須處於透明TCP模式,並讓後端(本例中爲HAProxy)處理TLS。 –
是的,服務器證書中的CN必須與客戶端用來訪問服務器的主機名相匹配。您還需要在ELB上擁有* no *證書。你可能會暫時從混音中刪除ELB,這樣你一次只能排除一件事。 –