日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

php连接数据库非明文,MySQL 数据库配置 SSL 安全连接

發布時間:2024/7/23 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php连接数据库非明文,MySQL 数据库配置 SSL 安全连接 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當使用非加密方式連接MySQL數據庫時,在網絡中傳輸的所有信息都是明文的,可以被網絡中所有人截取,敏感信息可能被泄露。在傳送敏感信息(如密碼)時,可以采用SSL連接的方式。

配置MySQL服務端支持SSL連接,MySQL 5.7.6以前版本的配置方法。

使用命令手工創建SSL文件創建CA文件:

# openssl genrsa 2048 > ca-key.pem

# openssl req -new -x509 -nodes -days 3600 \

> -key ca-key.pem -out ca.pem

創建服務端公鑰和私鑰:

# openssl req -newkey rsa:2048 -days 3600 \

> -nodes -keyout server-key.pem -out server-req.pem

# openssl rsa -in server-key.pem -out server-key.pem

# openssl x509 -req -in server-req.pem -days 3600 \

> -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

創建客戶端公鑰和私鑰:

# openssl req -newkey rsa:2048 -days 3600 \

> -nodes -keyout client-key.pem -out client-req.pem

# openssl rsa -in client-key.pem -out client-key.pem

# openssl x509 -req -in client-req.pem -days 3600 \

> -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

# chown mysql.mysql *.pem

修改MySQL服務端配置文件/etc/my.cnf,增加以下參數[mysqld]

ssl-ca=ca.pem

ssl-cert=server-cert.pem

ssl-key=server-key.pem

MySQL5.7.6及以后版本的配置方法

使用MySQL提供的腳本創建SSL文件,會創建到數據庫所在目錄中# pwd

/usr/local/mysql

# ./bin/mysql_ssl_rsa_setup

修改MySQL服務端配置文件/etc/my.cnf,增加以下參數:[mysqld]

ssl-ca=ca.pem

ssl-cert=server-cert.pem

ssl-key=server-key.pem

配置客戶端以SSL方式連接MySQL:

在服務器端配置了SSL參數后,客戶端發起連接時默認使用SSL方式。

命令行方式使用SSL連接:# mysql -h192.168.0.2 -P 3306 -uroot -p

以非加密方式連接MySQL:# mysql -h192.168.0.2 -P 3306 -uroot -p --ssl-mode=DISABLED

設置用戶必須以SSL方式連接MySQL數據庫:mysql> create user lmlphp@'%' identified by '123456' require ssl;

mysql> grant select on *.* to lmlphp@'%';

此時以非加密方式連接會報錯:

# mysql -h192.168.0.2 -P 3306 -ulmlphp -p --ssl-mode=DISABLED

Enter password:

ERROR 1045 (28000): Access denied for user 'lmlphp'@'192.168.0.2' (using password: YES)

啟用X509身份認證

使用上述步驟創建的符合X509格式的CA文件、公鑰、私鑰可以對連接進行身份認證,進一步提高連接的安全性。需先將CA文件、公鑰、私鑰分發給客戶端。

設置用戶必須以X509方式驗證身份后連接數據庫:mysql> create user lmlphp@'%' identified by '123456' require x509;

mysql> grant select on *.* to lmlphp@'%';

在客戶端使用分發的CA文件、公鑰、私鑰連接數據庫:# mysql -h192.168.0.2 -P 3306 -ulmlphp -p --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem

Enter password:

此時若不指定CA文件、公鑰、私鑰,僅使用SSL連接數據庫會報錯:

# mysql -h192.168.0.2 -P 3306 -ulmlphp -p

Enter password:

ERROR 1045 (28000): Access denied for user 'lmlphp'@'192.168.0.2' (using password: YES)

總結

以上是生活随笔為你收集整理的php连接数据库非明文,MySQL 数据库配置 SSL 安全连接的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。