经过反复摸索实验后,我终于成功地实现了SSL证书认证
功能,所以我想这一次我想把这些
步骤放下来
检查几天后。
出于安全和方便起见,我想在一台单独的专用机器上签名,也就是所谓的认证机构(CA)。
这使我们不能
登录到
服务器之前,新的客户端授权并签署证书或
修改pg_hba.conf。
We are going to create a special database group called sslcertusers.All users in this group can be connected by a certificate signed by CA.
在下面的示例中,请更换真诚的您的
公司名称或机构名称。所有的
命令都是基于Ubuntu 12.04 LTS。
建立CA
ca应该是高度安全环境下的脱机
计算机。
生成CA私钥
sudo OpenSSL key //生成DES3出 / / /私人SSL等trustly-ca.key / 2048
sudo chown根:SSL证书 / / / SSL等私人/ trustly-ca.key
sudo chmod 640 / / / SSL等私人/ trustly-ca.key
生成的CA证书
sudo OpenSSL要求新X509 - 3650天
-主题' / / ST = C = SE斯德哥尔摩/ L =斯德哥尔摩 / O =真诚 / CN =真诚的
钥匙 / / / SSL等私人/ trustly-ca.key
出 / usr /局部/
分享/证书/ trustly-ca.crt
sudo更新CA证书
配置服务器
生成的PostgreSQL服务器的私钥
删除默认证书#油的吧
sudo rm / / / lib VaR PostgreSQL / 9.1 / / server.key主要
sudo rm / / / lib VaR PostgreSQL / 9.1 / / server.crt主要
#
输入密码 sudo -u Postgres OpenSSL key //生成DES3出 / / / lib VaR PostgreSQL / 9.1 / / server.key 2048主
#删除密码
sudo -u Postgres OpenSSL的RSA在/ var / lib / / / PostgreSQL 9.1主 / / server.key出无功/ lib / / / PostgreSQL 9.1主/ server.key
sudo -u Postgres chmod 400 / / / lib VaR PostgreSQL / 9.1 / / server.key主要
生成服务器证书签名请求(CSR)
sudo -u Postgres OpenSSL要求新节点密钥/无功/ lib / / / PostgreSQL 9.1主/ server.key天3650, / / / lib VaR PostgreSQL / 9.1 / / server.key主要。
签约PostgreSQL服务器证书请求与CA的私钥
sudo OpenSSL的请求——X509
钥匙 / / / SSL等私人/ trustly-ca.key
在 / / server.csr TMP
出 / / / lib VaR PostgreSQL / 9.1 / / server.crt主要
sudo chown Postgres:Postgres /无功 / lib / / / PostgreSQL 9.1主/ server.crt
创建根(根)证书= PostgreSQL服务器证书+ CA证书
sudo -u Postgres SH c'cat / / / lib VaR PostgreSQL / 9.1 / / /等主要server.crt / / / SSL证书trustly-ca.pem > / / / lib VaR PostgreSQL / 9.1 / / CRT的主要根源。
sudo cp / / / lib VaR PostgreSQL / 9.1 / / / usr主要root.crt / / /分享当地的CA证书/ trustly-postgresql.crt
sudo更新CA证书
授权访问
创建组sslcertusers;
改变sslcertusers组添加
用户乔尔;
# / / / PostgreSQL等9.1 / / pg_hba.conf主要:
hostssl nameofdatabase + sslcertusers 192.168.1.0 / 24证书clientcert = 1
启动PostgreSQL
sudo使用PostgreSQL
重启 PostgreSQL客户端
设置 复制从服务器的根证书
mkdir ~ PostgreSQL /。
CP / / / SSL证书等trustly-postgresql.pem ~ / / / root.crt PostgreSQL。
PostgreSQL客户端密钥生成
OpenSSL的key //生成DES3出~ / / postgresql.key PostgreSQL 1024。
#如果这是一个服务器,删除密码:
OpenSSL的RSA在~ / / postgresql.key。PostgreSQL进行~ / / postgresql.key PostgreSQL。
PostgreSQL客户端证书签名请求和签名生成
#取代乔尔的
用户名:
OpenSSL的要求-新-关键~ / / postgresql.key。PostgreSQL进行~ / / postgresql.csr。PostgreSQL -主题' / / ST = C = SE斯德哥尔摩/ L =斯德哥尔摩 / O =真诚 / CN =乔尔
sudo OpenSSL X509 -要求在~ / / postgresql.csr。PostgreSQL钙 / / / SSL证书等trustly-ca.pem / / / -结块等SSL /私人/ trustly-ca.key -,-里。
sudo chown乔尔:乔尔·R ~ PostgreSQL /。
sudo chmod 400 -R ~ / / postgresql.key PostgreSQL。