隨手記:MySql.Data.dll僅支持TLS1.0版本

近期在進行服務器TLS協議安全加固的過程中,發現了MySql.Data對TLS版本的限制。

具體操作是準備取消不安全協議TLS1.0和1.1的支持,於是通過工具將服務器的Server、Client協議的1.0、1.1均取消勾選,結果在測試服務器重啓生效後發現程序啓動失敗了。

失敗原因爲:因爲算法不同,客戶端和服務器無法通信。

相關堆棧如下:

經過附加進程調試,確認了msyql數據庫連接並沒有使用tls,且根據堆棧判斷異常確實是在連接MySQL服務器步驟。

最後反編譯MySql.Data.dll代碼後看到了異常原因:代碼中寫死了TLS1.0版本的協議。

MySql.Data版本=6.9.9.0

 

看來,服務器的Client協議不能取消TLS1.0版本了,將其修改後重啓驗證故障恢復。

同時,查看了MySql.Data 8.0版本源碼後可以看到已經對其優化,已不存在此限制了:

 

結論

如果使用的MySql.Data版本爲6.x,則調整服務器的Client TLS版本時必須要保留TLS1.0

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章