1、系统需要有openssl、openssl-devel包
yum -y install openssl openssl-devel
2、查看当前数据库是否使用openssl编译
pg_config|grep CONFIGURE
如果没有重新编译
make clean
make && make install
3、服务器端证书配置
服务器端需生成三个文件: root.crt(根证书)、server.crt(服务器证书)、server.key(服务器私钥)
3.1 生成服务器私钥
cd /opt/app/postgresql/data
openssl genrsa -des3 -out server.key 2048
此处需输入密码,并需要再次确认输入密码
3.2 服务器私钥生成后,需移除密码,否则数据库重启时会出现异常
openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:
writing RSA key
3.3 生成服务器证书
openssl req -new -key server.key -days 2650 -out server.crt -x509
此处可以一路Enter,不用输入
3.4 生成根证书
由于没有公证机构提供,只能使用自签名证书,因此可以将服务器证书作为根证书
cp server.crt root.crt
4、修改配置文件postgresql.conf
5、修改配置文件pg_hba.conf
添加配置hostssl all all 0.0.0.0/0 md5
5、修改权限
root.crt (root,777)(根证书)
server.key (postgres,600) (客户端密钥)
server.crt (root,755) (客户端证书)
重启postgresql