IIS 6 SSL 證書問題 - 服務啟動時出現 SSL 連接錯誤,但如果從 MMC 停止並轉到網站,則可以
我正在處理安裝了 IIS 6 的舊版 win2k3 (sp2)。我有一個非常奇怪的問題,這讓我把頭髮拔了出來。
- 有 5 個網站配置為在特定的網路伺服器上執行。
- 其中,3 個具有可用的 SSL 證書(以及它們自己的專用 IP,在 :443 上提供 SSL)
- 這些網站之一存在以下問題:
首次啟動 w3svc 服務時(通過重新啟動或網路停止/啟動),與該特定網站的 SSL 服務的初始連接立即失敗,並顯示 ERR_SSL_PROTOCOL_ERROR。我將在下面提供進一步的診斷資訊。
現在列出完全令人費解的症狀和嘗試的補救措施:
- 如果我點擊 IIS MMC 中的“停止”圖示,然後啟動備份該網站(而不是 w3svc 服務本身),問題就會消失。
- 如果我為網站分配 443 以外的 SSL 埠,則問題永遠不會出現
- 如果我為網站分配不同的 SSL 證書,問題仍然存在
- 我從頭開始創建了一個全新的網站來測試它,問題再次出現
我在事件管理器(應用程序、系統或安全)和 w3svc 日誌文件中都看不到相關的日誌資訊。
Filemon 沒有顯示任何我可以告訴的奇怪的東西(訪問被拒絕或找不到任何類型的文件),無論如何,我懷疑證書實際上是從文件中獲取的。
我已經使用
wget
和SSLDiag
工具執行了其他測試,所有這些都說更多相同的內容,而沒有任何真正的進一步診斷資訊。鋼絲鯊檢查顯示連接被簡單地斷開:
- 客戶端向伺服器發送 226 字節的“Client Hello”數據包
- 一種$$ FIN,ACK $$數據包立即由伺服器發送回客戶端
當使用上述停止/啟動方法“修復”伺服器時,伺服器會正常響應(不發送此類 FIN/ACK 數據包)。
以上讓我想知道它是否是一種突然的頁面錯誤’y類型的事情會在任何日誌記錄或任何事情完成之前立即終止執行緒。
我很茫然,我已經在這個錯誤上花費了 8 多個小時,但仍然找不到解決它的方法。如果有人真的知道發生了什麼,我會很高興,但我實際上只是希望有一些關於如何進一步調試/檢查以確定問題根源的想法。
注意:有一些限制是我無法避免的,比如重新安裝伺服器或升級伺服器目前不是選項。
好的,所以我終於找到了解決這個問題的方法,但是該解決方案讓我不了解錯誤是什麼(我認為需要原始碼,並且鑑於不再支持 Win2k3/IIS 6,我在這樣的冒險中看不到實用程序)。但是為了共同的利益,最好把它寫下來以備不時之需。
按照 Twisty 的建議,我開始思考問題的本質。我首先停止伺服器上的所有網站,但涉及的網站除外,然後重新啟動網路服務。這什麼也沒做。
然後我查看了其他不活動的網站(那些長時間處於停止狀態的網站)並檢查它們是否存在任何可能的衝突。我注意到其中一個被配置為使用這個特定的證書。但是,從該站點刪除證書並不能解決問題。此外,還有其他非活動站點被配置為使用其他證書,但這些其他證書沒有顯示此錯誤。
TL; DR—— 我最終只是簡單地刪除了已棄用的網站,看看這是否會做任何事情,這確實解決了問題。–
我不知道,也沒有時間(而不是我的客戶)回去創建網站來探索完整的錯誤行為是什麼。但我假設它與非活動站點上的證書有關。
希望這個錯誤永遠不會發生在外面的任何人身上。