当前位置: 首页 > news >正文

安全加固:启动PostgreSQL 14服务器SSL加密的方法指南在CentOS 7环境中

在CentOS 7操作系统中配置PostgreSQL 14以启用SSL加密,需要进行以下步骤:

1. 安装PostgreSQL 14:

首先确保安装了PostgreSQL 14,可以通过以下命令安装:

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql14-server postgresql14
 

2. 初始化数据库并启动服务:

初始化PostgreSQL数据库,并启动PostgreSQL服务:

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14
 

3. 生成SSL证书:

需要在PostgreSQL数据目录下生成SSL证书和密钥。默认的PostgreSQL数据目录通常在 /var/lib/pgsql/14/data/

生成自签名的SSL证书和私钥:

sudo su - postgres
cd /var/lib/pgsql/14/data/
openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key
chmod 600 server.key
chown postgres:postgres server.key server.crt
 

在这个过程中,你会被询问有关证书的信息,如组织名称和位置。[

4. 配置PostgreSQL以使用SSL:

编辑PostgreSQL的主配置文件 postgresql.conf

vi /var/lib/pgsql/14/data/postgresql.conf

确保启用了SSL,并指定了证书和密钥的位置(如果你的证书和密钥位于默认目录,ssl_cert_file 和 ssl_key_file 可以不用更改):

ssl = on
ssl_cert_file = 'server.crt'
ssl_key_file = 'server.key'
 

5. 调整pg_hba.conf配置:

编辑文件 /var/lib/pgsql/14/data/pg_hba.conf,并确保使用了适当的认证方法来接受SSL连接:

# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
# Enable SSL connections:
hostssl all             all             0.0.0.0/0               scram-sha-256
 

注意:scram-sha-256 是推荐的密码验证方法。

6. 重启PostgreSQL服务:

重启PostgreSQL服务以应用更改:

sudo systemctl restart postgresql-14
 

7. 测试SSL连接:

使用 psql命令行工具测试SSL连接,可以使用参数 -h localhost 来强制使用TCP连接而非默认的UNIX socket, -U postgres 来指定用户名:

psql "sslmode=require dbname=postgres user=postgres host=localhost"
 

如果出现 Postgres 提示符,表明SSL连接成功。

8. 防火墙调整:

根据需要,你可能必须更新CentOS 7的防火墙规则来允许外部SSL连接到PostgreSQL:

sudo firewall-cmd --add-service=postgresql --permanent
sudo firewall-cmd --reload
http://www.wxhsa.cn/company.asp?id=2429

相关文章:

  • 更美观的网页布局
  • 更灵活易用、延迟超低、更多情感语音支持!地表最强 Voice Agent 开源框架再进化!丨TEN Framework 更新
  • 详细介绍:【干货收藏】Transformer架构深度拆解:大模型入门核心指南
  • 实用指南:Terraform 从入门到实战:历史、原理、功能与阿里云/Azure 上手指南
  • Electron38-Wechat电脑端聊天|vite7+electron38仿微信桌面端聊天系统
  • 详细介绍:开源AI智能客服与AI智能名片在S2B2C商城小程序客服管理中的应用与影响
  • 深入解析:每日一算:电话号码的字母组合
  • PsExec
  • 华为系CEO,正在“接管”汽车圈?
  • Marvell,跌落神坛!
  • 老同志们的93阅兵镜头
  • 英伟达老黄,又收购了一家AI编程公司
  • 读人形机器人10酒店行业
  • 35岁不是终点,而是芯片人的爆发起点!
  • 开源安全与法律争议:OpenSSH枚举、DMCA诉讼与数据泄露事件解析
  • 9.12-huenqi
  • P3983 赛斯石(赛后加强版)踢姐
  • huggingface hub 离线模式
  • 鸿蒙应用开发环境搭建全攻略
  • 深度学习求导原理深度解析
  • ingress 配置说明
  • 场论笔记(二) 单位脉冲函数及其性质
  • MongoDB错误处理【1053】【1067】(意外断开读写中的数据库)
  • 实用指南:Python高级编程实战:装饰器、迭代器与生成器的深度应用
  • 阅文记录
  • 一个类继承一个接口的实现类、两个类实现同一个接口、两个类同时继承一个实现了某一接口的抽象类。三者的区别是什么呢
  • 关于点在直线的哪一边的做法
  • 计算机常识
  • 网络流,最大流,EK算法
  • wifi7 MRU介绍