分类
开发日志

使用CF自签证书启用远程MYSQL数据库SSL连接

为什么要启用SSL:

因为使用了站库分离,为了保密,防别人抓包。

下面以WordPress + MariaDB为例,

准备工作

准备好一个WordPress网站,网站数据库已经是使用了远程数据库,网站域名已经添加进你的CloudFlare账户。

(1)启用WP与数据库启用SSL连接

编辑WordPress根目录的wp-config.php文件,添加一行:

define(‘MYSQL_CLIENT_FLAGS’, MYSQLI_CLIENT_SSL);

测试你的网站,已经打不开了,提示数据库连接错误

(2)准备SSL证书,需要三个文件,具体如下:

进入你的CF账户,进你的域名-> SSL/TLS-> 源服务器,创建一个15年的证书,分别保存为两个文件:

cert.pem
文件内容开头为:—–BEGIN CERTIFICATE—–

key.pem
文件内容开头为:—–BEGIN PRIVATE KEY—–

第三个文件为Cloudflare Origin CA root certificates证书,需要去CF官方下载:
https://developers.cloudflare.com/ssl/static/origin_ca_rsa_root.pem
保存文件为ca.pem
文件内容开头为:-----BEGIN CERTIFICATE-----

(3) MariaDB启用SSL

a) 把上面的三个文件上传到你的数据库服务器目录:/etc/mysql/ssl-keys/

b) 编辑 /etc/mysql/mariadb.conf.d/50-server.cnf文件,找到
[mariadb]
添加三行:
ssl_cert = /etc/mysql/ssl-keys/cert.pem
ssl_key = /etc/mysql/ssl-keys/key.pem
ssl_ca = /etc/mysql/ssl-keys/ca.pem

c) 重启数据库
$ sudo service mysqld restart

d) 验证SSL启用

$ sudo mysql

MariaDB [(none)]> SHOW VARIABLES LIKE ‘have_ssl’;

返回结果为:
have_ssl | YES

最后去刷新你的WordPress,这个时候网站已经恢复正常,打完收工