關於useSSL=false和true的區別及說明

useSSL=false和true的區別

SSL(Secure Sockets Layer 安全套接字協議),在mysql進行連接的時候,如果mysql的版本是5.7之後的版本必須要加上useSSL=false,mysql5.7以及之前的版本則不用進行添加useSSL=false,會默認為false,一般情況下都是使用useSSL=false,尤其是在將項目部署到linux上時,一定要使用useSSL=false!!!,useSSL=true是進行安全驗證,一般通過證書或者令牌什麼的,useSSL=false就是通過賬號密碼進行連接,通常使用useSSL=false!!!

useSSL=false 連接配置詳解

web應用中連接mysql數據庫時後臺會出現這樣的提示:

Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+,
5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

原因是MySQL在高版本需要指明是否進行SSL連接。

SSL協議提供服務主要

1)認證用戶服務器,確保數據發送到正確的服務器;  

2)加密數據,防止數據傳輸途中被竊取使用;

3)維護數據完整性,驗證數據在傳輸過程中是否丟失;

當前支持SSL協議兩層

  • SSL記錄協議(SSL Record Protocol):建立靠傳輸協議(TCP)高層協議提供數據封裝、壓縮、加密等基本功能支持
  • SSL握手協議(SSL Handshake Protocol):建立SSL記錄協議用於實際數據傳輸始前通訊雙進行身份認證、協商加密算法、交換加密密鑰等。

解決方案如下

在mysql連接字符串url中加入ssl=true或者false即可,如下所示。

url=jdbc:mysql://127.0.0.1:3306/framework?useSSL=false

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: