MYSQL 網頁設計 技巧
終於黎到拉士一節勒......加油!!!
加密連接可提高數據既安全性,但會降低性能。要進行加密連接,必須滿足以下要求:
-
user權限表裡要有相關既SSL數據列。如果安裝既MySQL伺服器係4.0.0版的,user權限表已包含相關既SSL數據列,否則,我地亦可用mysql_fix_privilege_tables腳本升級權限表。
-
伺服器和客戶程式都已經編譯有OpenSSL支持。首先要安裝openssl,在編譯時MySQL伺服器時加--with-vio和--with-openssl選項加上openssl支持。可用以下語句查詢伺服器是否支持SSL:
mysql> show variables like 'have_openssl';
-
在啟動伺服器時用有關選項指明證書文件和密鑰文件既位置。在建立加密連接前,要準備三個文件,一個CA證書,是由可信賴第三方出具的證書,用來驗證客戶端和伺服器端提供的證書。CA證書可向商業機構購買,也可自行生成。第二個文件是證書文件,用于在連接時向對方證明自已身份的文件。第三個文件是密鑰文件,用來對在加密連接上傳輸數據的加密和解密。MySQL伺服器端的證書文件和密鑰文件必須首先安裝,在sampdb發行版本的ssl目錄裡有幾個供參考的樣本文件:ca-cert.pem(CA證書),server-cert.pem(伺服器證書),server-key.pem(伺服器公共密鑰)。把這幾個文件拷貝到伺服器的數據目錄中,再在選項文件裡加上以下內容:
[mysqld] ssl-ca=/usr/local/mysql/data/ca-cert.pem ssl-cert=/usr/local/mysql/data/server-cert.pem ssl-key=/usr/local/mysql/data/server-key.pem
重啟伺服器,使配置生效。
-
要想讓某個客戶程式建立加密連接,必須在調用這個客戶程式時用有關選項告訴它在哪裡能找到其證書文件和密鑰文件。在sampdb發行版的ssl目錄中提供了client-cert.pem(客戶證書文件),client-key.pem(客戶密鑰文件),CA證書與伺服器使用同樣的ca-cert.pem。把他們拷貝到個人目錄下,並在.my.cnf選項文件中指出文件位置,如:
[mysql] ssl-ca=/home/mysql/ca-cert.pem ssl-cert=/home/mysql/client-cert.pem ssl-key=/home/mysql/client-key.pem
配置完成後,調用mysql程式運行\s或SHOW STATUS LIKE 'SSL%'命令,如果看到SSL:的資訊行就說明是加密連接了。如果把SSL相關的配置寫進選項文件,則默認是加密連接的。也可用mysql程式的--skip-ssl選項取消加密連接。如果用命令行方式啟用加密連接可以這樣寫:
% mysql --ssl-ca=ca-cert.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem 網站推廣網站推廣網站推廣
可用GRANT語句的REQUIRE SSL選項來強制用戶使用加密連接。
使用sampdb發行版的證書可以建立一個加密連接,但由於該文件已公開,所以安全性不好,我們可以在測試成功後自行建立證書或購買商業證書,以提高安全性。如何自行建立SSL證書的文檔在sampdb發行版的ssl/README文件裡有說明
留言列表