透過網路存取資料庫主機時,若沒有經過特別保護處理,重要資料很可能被中途截取,若改用SSL安全傳輸的方式來連結資料庫,將能有效地避免在傳輸過程中發生資料外洩的事故。
在產生相關的憑證之後,最後將利用這些憑證來實作MySQL SSL的安全連線。
實作MySQL SSL
本次的實作架構圖如圖10所示,將設定MySQL用戶端以SSL連線的方式,連線至MySQL伺服器端。
|
▲圖10 MySQL SSL實作架構。 |
首先設定MySQL伺服器,在主機上的「/etc/my.cnf」檔案中設定相關SSL的組態,設定如圖11所示,其中ssl-ca為指定伺服器證書的位置,ssl-cert是用來指定伺服器憑證的位置,而ssl-key為指定伺服器私鑰的位置。
|
▲圖11 修改「/etc/my.cnf」檔案設定內容。 |
設定完成後,重新啟動MySQL伺服器。再次登入MySQL伺服器時,可以圖12中所示的指令查看SSL狀態,如果出現have_openssl與have_ssl均為YES的情況,就代表SSL已經設定完成了。
|
▲圖12 查看SSL狀態。 |
接著,設定一個僅能以SSL連線的帳號,以便測試SSL連線是否正常,並執行以下的指令(帳號名稱為root):
完成帳號設定後,接著測試以遠端SSL連線來連接MySQL資料庫。
進行遠端的SSL連線,首先將用戶端憑證複製到遠端主機(複製ca-cert.pem、client-cert.pem、client-key.pem等檔案),然後在遠端主機上執行下列指令,利用SSL連線連接MySQL資料庫進行資料庫存取作業:
至此,就可以利用SSL的加密功能來確保MySQL資料在傳輸過程中的安全了。
<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>