PostgreSQL安装和开启SSL加密连接【配置单/双向认证】
#!/bin/bash
# 安装PostgreSQL
sudo apt-get update
sudo apt-get install -y postgresql postgresql-contrib
# 启用SSL加密连接
# 创建SSL目录和证书
sudo mkdir -p /etc/postgresql/ssl
cd /etc/postgresql/ssl
# 生成服务器私钥和证书签名请求(CSR)
sudo openssl req -new -text -out server.csr -keyout server.key -subj "/CN=PostgreSQL Server/O=DB Admin"
# 生成自签名证书
sudo openssl x509 -req -in server.csr -text -signkey server.key -out server.crt
# 更新PostgreSQL配置以使用SSL
sudo sh -c 'echo "ssl = on" >> /etc/postgresql/12/main/postgresql.conf'
sudo sh -c 'echo "ssl_cert_file = '/etc/postgresql/ssl/server.crt'" >> /etc/postgresql/12/main/postgresql.conf'
sudo sh -c 'echo "ssl_key_file = '/etc/postgresql/ssl/server.key'" >> /etc/postgresql/12/main/postgresql.conf'
# 重启PostgreSQL以应用配置更改
sudo service postgresql restart
# 配置客户端SSL证书(双向认证的一部分)
# 首先,将服务器的CA证书复制到客户端
sudo cp /etc/postgresql/ssl/server.crt /home/user/.postgresql/
# 然后,编辑`pg_hba.conf`以启用双向SSL验证
sudo sh -c 'echo "hostssl all all 0.0.0.0/0 cert" >> /etc/postgresql/12/main/pg_hba.conf'
# 重启PostgreSQL以应用pg_hba.conf更改
sudo service postgresql restart
# 客户端连接时使用SSL
psql "sslmode=verify-full sslrootcert=/home/user/.postgresql/server.crt dbname=mydb user=myuser"
这个脚本展示了如何在Ubuntu系统上安装PostgreSQL,并配置SSL加密连接。它还演示了如何生成SSL证书,如何修改PostgreSQL配置以启用SSL,以及如何配置pg_hba.conf
来要求双向SSL客户端认证。最后,提供了一个使用SSL模式的psql
连接示例。
评论已关闭