2011-06-27 51 views
1

我正在解決MSMQ消息停留在出站隊列(等待連接的隊列)中的問題。爲了排除故障,我正在運行WireShark以查看網絡接口上正在推送的內容。使用WireShark分析HTTPS流量上的MSMQ - 未看到POST

我已經運行Wireshark的跟蹤和我所看到的似乎是一個完整的SSLV3握手(從本地MSMQ產生試圖連接到服務器):

客戶端 - >服務器 - 客戶端Hello
服務器 - >客戶端 - 服務器問候
客戶端 - >服務器 - 客戶端密鑰交換,變更密碼說明
服務器 - >客戶端 - 變更密碼說明,加密握手

這些消息,我期待看到與客戶端嘗試將POST消息後將消息推送到服務器,以及來自服務器的某種響應,但存在 沒有。在最後一次更改密碼規範是在下一次SSLV3握手之前的一組[ACK]和[SYN]消息之後,我在客戶端和服務器之間看到的所有內容。具體信息是:

客戶端 - >服務器 - TCP - [FIN,ACK]
服務器 - >客戶端 - TCP - [ACK]
服務器 - >客戶端 - TCP - [FIN,ACK]
客戶 - >服務器 - TCP - [ACK]
客戶端 - >服務器 - TCP - [SYN]
服務器 - >客戶端 - TCP - [SYN]
客戶端 - >服務器 - TCP - [ACK]

然後握手重複。

握手後不應期望看到POST消息嗎?我知道當通過HTTP發送MSMQ消息時,MSMQ會執行MSMQ消息的HTTP POST,所以我期望在握手之後將其顯示爲應用程序數據。

我是否需要以某種方式配置WireShark以查看這些,因爲它是通過HTTPS?

由於

+0

快速測試 - 瀏覽到隊列的HTTPS位置(使用IE等)以確保SSL正常工作。 –

回答

1

從您的問題中不清楚您是否遵循了文檔decipher SSL using Wireshark(否則,您將看到數據包,但無法查看其內容)。請注意,要實現這一點,您需要將服務器的私鑰提供給wireshark,否則任何人都可能破譯SSL/TLS連接(並且防止這種情況恰恰是使用SSL/TLS的關鍵)。

此外,您可能需要強制您的工具使用當今認爲性能較差的密碼套件。例如,現代瀏覽器傾向於使用Ephemeral Diffie-Hellman(DHE)密碼套件(除非明確配置)。 Wireshark將無法解密使用這種密碼套件的SSL連接。

+0

看起來,如果在握手之後沒有看到任何應用程序數據(甚至是加密的),則建立連接時出現問題(您是否至少看到正常的關閉警報?)。如果可以的話,這將有助於從服務器日誌中看到更多信息。 – Bruno

+0

我對看到解密的信息並不感興趣,因爲我發現在握手後發生了某種數據包交換,即根據SSL規範進行應用程序數據交換。 – user469104

+0

是的,如果發送POST,您應該看到一些應用程序數據。如果連接關閉(即使它正常關閉),您也應該看到一些警報(可能是加密的)。沒有看到任何一方都可能意味着應該先發送一些數據的一方「掛起」而不發送任何東西(這可能是客戶端,因爲它應該是在使用HTTP時首先發出請求的那個)。 – Bruno

0

的SSL加密整點是通過線路發送的信息是加密的,因此,不可見的。就我個人而言,如果您可以封裝嗅探SSL流量,我會非常擔心。您可以可能能夠配置wireshark通過SSL顯示比您目前所看到的更多的信息,但您永遠不會看到實際內容,例如POST。

+0

因此WireShark將不能顯示數據包交換,即使只作爲「加密數據」?現在我握手後什麼也沒有看到。 – user469104

+0

*如果*它是一個封閉的系統並且私鑰可用(例如,OP是服務器管理員並且他可以訪問密鑰),那麼嗅探器應該能夠顯示受SSL保護的流量(當然也取決於嗅探器) 。 –