设置pgsql使用SSL加密(自签名证书)
1、切换至postgres用户
su postgres
2、进入到pgsql的安装目录
cd /home/data/postgresql-11.6
3、创建证书和私钥
openssl req -new -text -out server.req
按照提示输入即可
如图:
为 server.req设置权限
chmod 600 server.req
4、使用 OpenSSL 自签名证书
openssl rsa -in privkey.pem -out server.key
按照提示输入密码即可
如图:
为 server.key 设置权限
chmod 600 server.key
生成自签名的 SSL 证书
openssl x509 -req -days 365 -in server.req -signkey server.key -out server.crt
如图:
5、修改配置文件postgresql.conf
开启ssl功能
vim data/postgresql.conf
#换成实际的pg文件路径
在配置文件中添加或者修改以下配置:
ssl = on
ssl_cert_file = '/home/data/postgresql-11.6/server.crt'
ssl_key_file = '/home/data/postgresql-11.6/server.key'
#换成实际的server.crt存储文路径
#换成实际的server.key存储文路径
如图所示
6、修改pg_hba.conf文件
为所有的流复制连接添加hostssl
vim data/pg_hba.conf
hostssl replication all 0.0.0.0/0 md5
如图所示
7、重启pgsql服务
systemctl restart postgresql
如果服务重启失败 并且查看日志显示:
SSL is not supported by this build
那么证明你编译安装时没有指定以下参数
./configure --with-openssl
需要重新编译安装并开启ssl功能
--with-openssl
8、验证是否成功
登录pgsql,输入
SHOW ssl;
如图: