1 安装openssl yum install openssl
2 生成 openssl genrsa -des3 -out server.key 1024(密码记住,生成完毕后用openssl rsa -in server.key -out server.key移除密码)
3 更改权限
chmod 400 server.key
chown postgres:postgres server.key
4 生成证书crt文件证书内容自己改
openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj '/C=CA/ST=British Columbia/L=Comox/O=TheBrain.ca/CN=thebrain.ca/emailAddress=info@thebrain.ca'
cp server.crt root.crt
5 将三个文件server.key server.crt root.crt复制到pgdata目录
6 编辑postgresql.conf 文件:
ssl = on
ssl_ca_file = 'root.crt'
ssl_cert_file = 'server.crt'
ssl_key_file = 'server.key'
7修改pg_hba.conf
hostssl all postgres 0.0.0.0/0 md5 clientcert=1
8重启服务
systemctl restart postgresql-10
以上工作为服务端配置,接下来要配置客户端的证书
在服务器上生成客户端的证书:
9 生成私钥openssl genrsa -des3 -out /tmp/postgresql.key 1024(移除密码命令:openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key)
10 创建客户端证书postgresql.crt,该证书必须用服务器上的root.crt签名,同时一定注意证书的Common Name(CN)必须与访问服务器的用户名一致:
openssl req -new -key /tmp/postgresql.key -out /tmp/postgresql.csr -subj '/C=CA/ST=British Columbia/L=Comox/O=TheBrain.ca/CN=pgUser'
openssl x509 -req -in /tmp/postgresql.csr -CA root.crt -CAkey server.key -out /tmp/postgresql.crt -CAcreateserial
11 把/tmp目录下面的上述三个文件包括root.crt一起复制到客户端:~/.postgresql/(windows下面为%appdata%\postgresql\)
12 注意删除服务器上面/tmp目录下面生成的文件。
网友评论